0
Cで複数のクライアントを持つサーバーで遊んでいて、気がついたことがあります。クライアントがサーバーから切断されるとき(サーバーは単にクライアントのファイル記述子で閉じる)選択コール(selectを使用して複数のクライアントからのメッセージを処理しています)は、サーバーのソケットを読み込み準備ができていると設定し、呼び出しの戻り値は0です。selectはサーバーソケットで0を返すため、この事実を無視するとサーバーがブロックされます他のソケットを待つのではなく、準備としてセットする。誰かが切断した後、そしてサーバが新しい接続を受け入れる前に、サーバソケットで何らかの余分なクリーンアップが行われていますか?Selectコールは、クライアントが切断されたときにサーバーのソケットを設定します。
ありがとうございました! fdsetsにソケットを追加するときに間違ったフラグをチェックしていたことが判明しました – user1435820