現在、クライアントには 2 つのネットワーク インターフェイスがあります。各インターフェイス IP にバインドする 2 つの個別のソケットを作成しました。現在、2 つのサーバーがあり、それぞれがクライアントの 1 つのソケットと通信しています。両方のインターフェイスから同時に (現在は UDP または DGRAMS を使用して) データ (今のところ最大 10MB ですが、後で大きくなります) を受信できるようにしたいのですが、何らかの理由で、1 つのデータ転送を終了する必要があるため、常に遅延が発生します。他のソケットで転送を開始する前に、ソケット。
各インターフェースのバインドが成功し、各ソケットでそれぞれのサーバーと通信できることを確認しました。現在、同じコード ブロック内でs1.recv()
実行するだけです。s2.recv()
だから私の質問は、使用の「ブロッキング」機能による遅延recv()
ですか? また、私の検索では、機能をブロック解除する方法があるようです? しかし、それを行う方法がわかりません...そして、これはマルチスレッドを使用することで解決されますか? 私はマルチスレッドに少し慣れていませんが、問題が解決した場合は調査します。そうでない場合、両方のインターフェイスから並行して送受信できるようにするには、どうすれば両方のインターフェイスを利用できますか?
誰かが助けてくれれば、とても感謝しています。