1. ホーム
  2. sockets

[解決済み] TCPソケットとUDPソケットは同じポートを使用することができますか?

2022-08-03 12:47:14

質問

まず、同じサーバで UDP と TCP の両方を使用することに問題はないのでしょうか。

次に、同じポート番号を使用することは可能ですか?

どのように解決するのですか?

はい、TCP と UDP の両方で同じポート番号を使用することができます。 多くのプロトコルはすでにこの方法を採用しており、たとえば DNS は udp/53 で動作します。 tcp/53 で動作します。

技術的には、各プロトコルのポートプールは完全に独立していますが、TCP または UDP のいずれかを使用できるより高度なプロトコルでは、デフォルトで同じポート 番号 .

サーバを書く際には、TCP ソケットのイベントのシーケンスは UDP ソケットよりもずっと難しいということを覚えておいてください。 socketbind の呼び出しも必要です。 listenaccept .

さらにその accept の呼び出しは新しいソケットを返し、そのソケットは その のソケットで、受信イベントのポーリングも行わなければなりません。 あなたのサーバは、次のような処理を続ける準備ができているはずです。 accept 同時に複数のクライアントに対応し、それぞれのソケットで受信イベントを発生させる必要があります。