select
TCPソケットを介してクライアントからデータを取得するために使用するTCPサーバーがあります。サーバーはデータの消費が遅く、クライアントははるかに高速です。クライアントは 8 バイトのデータを送信し、そのたびに -新しい接続を開く -データを書き込む -切断する このため (サーバー ソケットは多くの接続を受け入れる必要があります)、バックロック値listen
を 500 に増やしました。
pthread
この設定にもかかわらず、ある時点で、呼び出された関数でクライアントがブロックされ__connect_nocancel
、これが何度も発生することがわかります。-しばらくすると、サーバーが注文からデータを受信し始めます。めちゃくちゃになった最初のデータは、クライアントがブロックするデータです (その後に other が続きます)。
バックログを増やすとこれが解決する可能性があると思いましたが、この問題はそうではありません。
手伝って頂けますか?私はLinux 2.6.32にいます
乾杯
AFG