出力と入力に別のポートがありますか?
-
26-09-2019 - |
質問
UDPを使用してデータを送信する場合、宛先ポートを指定する必要があります。
TCP で送信する場合は、送信元ポートも指定する必要があります。
入力と出力に別のポートがありますか?たとえば、ポート 1234 を指定した場合、それを入力と出力の両方に使用できますか、それとも出力と入力に別のポートを使用する必要がありますか?
編集:私の質問を明確にするために:- ポート X からデータを送信します。- 誰かがポート X にデータを送信しました。これら 2 つのポートは異なるものですか、それとも同じものが使用されますか?
解決
UDPを使用してデータを送信し、A 宛先ポートがあることを必要とされています 指定されています。
正しいます。
TCP、送信元ポートで送信した場合 また、指定する必要があります。
が正しくありません。指定されていない場合、システムは自動的に1が割り当てられます。これは、通常の使用である。
が、入力と出力のための別のポートはありますか?
はありません。あなたがにバインドされているローカルポートが両方に使用されます。
そして、すべてこれはUDPとTCPの両方に適用されます。
他のヒント
送信元ポートは接続を開始するコンピュータ上にのみ存在するポートですが、宛先ポートは接続を受信するコンピュータ上にのみ存在します (ただし、両方のポートは両方のエンドポイントから認識されます)。TCP と UDP には送信元ポートと宛先ポートの両方があります。通常、ソース ポートは、コンピュータ上の未使用のポートからソケット ライブラリによって自動的に選択されます。特定の送信元ポートを選択する正当な理由はほとんどなく、多くの場合、ネットワーク アドレス変換 (NAT) プロセスの一部としてインターネット ゲートウェイ (ルーター) によって変更されます。
編集:明確にするために、送信元ポートと宛先ポートの両方が入力と出力の両方に使用されます。コンピュータ上のどのポートが使用されているかは、TCP 接続のどちら側に接続しているかによって異なります。受信側にいる場合、宛先ポートはコンピュータ上にあります。からの接続を見ているとき あなたの 観点から見ると、これはソースポートとなり、入力と出力の両方に使用されます。同じ原則が UDP にも当てはまりますが、「接続」自体はなく、単にポート間で生データが交換されるだけである点が異なります。
TCPは、送信元と宛先のポートの両方を必要とします。あなたは、単に宛先ポートにデータを送信し、それがいずれかの届くかどうか。
だから、TCPで、次の2台のコンピュータ間で「チャンネル」を開きます。あなたはそれを介してデータを送信し、おそらくいくつかのバックを受け取ります。
UDPでは、あなたがしたい場合に、の受信のデータ、あなたは「別の」ポートを必要とする[はいその着信データをリッスンします。