まず、UDPとTCPの両方を同じサーバーで使用することに問題はありますか?
次に、同じポート番号を使用できますか?
はい。TCPとUDPの両方に同じポート番号を使用できます。たとえば、DNSはudp/53 and tcp/53で動作します。
技術的には、各プロトコルのポートプールは完全に独立していますが、TCPまたはUDPのいずれかを使用できる高レベルのプロトコルの場合、デフォルトは同じポートnumberです。
サーバーを作成するとき、TCPソケットのイベントのシーケンスはUDPソケットよりもはるかに難しいことに注意してください。通常のsocket
とbind
は、listen
とaccept
も呼び出す必要があります。
さらに、そのaccept
呼び出しは新しいソケットを返し、それはthatソケットであるため、受信イベントもポーリングする必要があります。サーバーは、それぞれが独自のソケットで受信イベントをトリガーする複数のクライアントに同時にサービスを提供しながら、元のソケットでaccept
ing接続を続行する準備をする必要があります。
まず、サーバーでtcpとudpの両方を使用しても問題ありません。
次に、UDPとTCP要求を同じポートで使用できます。各要求は、送信元IP、送信先IP、送信元ポート、送信先ポート、プロトコル(プロトコルとして、 be TCPまたはUDP)。