Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
非ブロッキング TCP ソケットの送信元ポートと宛先ポートが一致しない場合 (p2p アプリケーションの場合)、ソケットが Connect() する宛先ポートをどのように指定しますか?
P2Pの場合、クライアントは最初にトレントに接続して、ピア(シーダー)のリストとピアで開いているポート番号を取得します。ダウンロードしたいシステムは、トラッカーから提供されたアドレスとポートを使用してピアに接続します。
ピアは(一般的に)制限的ではなく、任意の送信元アドレスまたはIPからの接続を受け入れます
接続の宛先ポートの指定は、connect() 呼び出しに渡す sockadder-struct で行われます。作業しているOSを指定していないため、具体的な例を提供することは困難です. ただし、Linux と Windows の両方で、通常は getaddrinfo() を使用して sockaddr-struct をロードします。素敵な Linux の例がここに提供されていますが、MSの公式ドキュメントには例があります。