ソケットはネットワークプログラムで広く使われていることを知っており、それを使ってコードを書くことができます。しかし、私はいくつかのことを理解できません:
1. なぜソケットが必要なのですか?
ネットワーク層ごとにアプリケーション層プログラムを区別するために使用する場合、アプリケーション名またはその他の一意の属性を使用しないのはなぜですか?
ソケットは標準ですか?
ソケットはLinuxまたは他のOSの単なる構造ですか?
2. ソケットはどのように機能しますか?
bind、accept、listen、send など、ソケットの周りには多くの関数があります。msg を tcp バッファに送信しますか? ネットワーク層プロセスが tcp バッファ データを読み取る方法と、データを下位層プロセスに送信する方法は?
関数を使用した場合send(int sockfd, const void *buf, size_t len, int flags)
、最初の引数 'sockfd' はランダムな int などの未定義のソケットです。どのような結果が発生し、その理由は? os は何を処理しますか?