まず、同じサーバーでUDPとTCPの両方を使用することに問題はありますか?
次に、同じポート番号を使用できますか?
まず、同じサーバーでUDPとTCPの両方を使用することに問題はありますか?
次に、同じポート番号を使用できますか?
回答:
はい、TCPとUDPの両方に同じポート番号を使用できます。たとえば、DNSはudp / 53 および tcp / 53で動作します。
技術的には、各プロトコルのポートプールは完全に独立していますが、TCPまたはUDPのいずれかを使用できる上位レベルのプロトコルの場合、デフォルトで同じポート番号に設定されるのが慣例です。
念頭に置いて、サーバー、クマを書くときも通常通りとして以来、TCPソケットのためのイベントのシーケンスは、はるかに困難UDPソケットのためのよりであることsocket
と、bind
通話あなたもしなければならないlisten
とaccept
。
さらに、そのaccept
呼び出しは新しいソケットを返し、そのソケットは受信イベントをポーリングする必要があります。サーバーはaccept
、それぞれのソケットで受信イベントをトリガーする複数のクライアントに同時にサービスを提供しながら、元のソケットで接続を継続できるように準備する必要があります。
まず、サーバーでtcpとudpの両方を使用しても問題はありません。
次に、各要求は送信元IP、宛先IP、送信元ポート、宛先ポート、プロトコル(プロトコルはTCPまたはUDPの場合があるため)に含まれる5要素で識別されるため、UDP要求とTCP要求の両方を同じポートで使用できます。