1

さて、Pythonでソケットプログラミングをしているときに問題が発生しました。

私がソケットで行っていたことは、最初にクライアント ソケットを作成し、HTTP GET 要求をサーバーに送信し、そのサーバーからの応答を受信するというものでした。それは正常に動作します。

今、私の新しいアイデアは、2 つのソケット、1 つの送信、1 つの受信でそれを行いたいということです。

送信ソケットは通常どおりです。当然のことです。受信ソケットは、送信ソケットで使用される ipaddress にバインドするサーバーです。

問題は、リモート サーバーからの応答を受信できないことです。私はwiresharkを使用しましたが、リモートサーバーがソケットの送信によって使用されるポートにデータを送り返していることがわかります。ただし、受信ソケットが使用されているため、そのポートにバインドできません。

2 つのソケットで私のシナリオを達成する方法はありますか? raw_socket を使用して、一部のシステム ネットワーク プロトコルをバイパスする必要がありますか?

4

1 に答える 1

0

いいえ、受信ソケットを別の送信ソケットと同じアドレスにバインドすることはできません。

関連する Linux の man ページから:

特定のローカル (アドレス、ポート) ペアにバインドできる IP ソケットは 1 つだけです。

于 2013-10-31T19:31:01.037 に答える