connect()
サーバーに接続し、forループでサーバーを閉じるクライアントアプリケーションを作成しています。
これはブロックモードで行われ、一部の呼び出しは数千回の成功後約3秒間ブロックされるconnect()
ことがわかりました。 tcpdumpを使用しましたが、いくつかの奇妙な結果が見つかりました。呼び出し後約3秒間SYNは送信されませんでした。connect()
connect()
connect()
どうしたの?
PS。私は64ビットUbuntu、カーネル3.0.0-13を使用しています。
ベストアンサー1
bind
おそらく、電話する前に電話をかけていない可能性がありますconnect
(これは正常な現象であり、これを行う理由はありません)。したがって、以前はconnect
暗黙的なbind
。ローカルポートの利用可能な範囲がなくなると、そのポートを待っている間にbind
ブロックが発生する可能性があります。最良の解決策は、実行したい作業によって異なります。詳しくは私のコメントをご覧ください。解決策を提案します。