奇妙なクエリがあります。ソケットは IP とポートの組み合わせであることを学びました。では、ソケット記述子とは何ですか? それはただの整数ですか?それは何をするためのものか?
同じポートで異なるソケット記述子を使用することはできますか? はいの場合、それらは異なるタイプ (TCP/UDP) である可能性がありますか?
これらがばかげた質問であることはわかっています。私はかなり長い間SDを盲目的に使用してきました:P
奇妙なクエリがあります。ソケットは IP とポートの組み合わせであることを学びました。では、ソケット記述子とは何ですか? それはただの整数ですか?それは何をするためのものか?
同じポートで異なるソケット記述子を使用することはできますか? はいの場合、それらは異なるタイプ (TCP/UDP) である可能性がありますか?
これらがばかげた質問であることはわかっています。私はかなり長い間SDを盲目的に使用してきました:P
TCP と UDP は独立しているため、TCP ソケットと UDP ソケットを同じポートで使用できます。
ファイル記述子がファイルに対するものであるように、ソケット記述子はソケットに対するものです。
TCP 接続は、実際にはタプル (ローカル IP、ローカル ポート、リモート IP、リモート ポート) によって定義されます。リモート IP やポートが異なる限り、同じローカル IP とポートで複数の接続を持つことができます。
たとえば、Web サーバーはすべての接続にローカル ポート 80 を使用します。ただし、各クライアント接続は、異なるマシン (したがって、異なるリモート IP) から、または同じマシン上の異なるソケット (したがって、リモート IP は同じですが、リモート ポートは異なります) から取得されます。
ソケット記述子は、socket 呼び出しでソケットの作成を要求したときにシステムから返される一意の整数です。各ソケットは、そのソケット記述子によって識別できます。
質問の 2 番目の部分に関しては、同じ IP+PORT+PROTOCOL に対して異なるソケット記述子を取得するため、同じポートで tcp および udp ソケットを使用できますが、2 つの異なるソケット記述子を取得します。
最初に、次のようなネットワーク プログラミング チュートリアルを読む必要があります。 Beej のネットワーク プログラミング チュートリアル