ノンブロッキングソケット(fd_sets
およびselect
関数)を使用してサーバーとクライアントをプログラミングしています。サーバーがクライアントソケットを閉じるかシャットダウンすると、クライアントはクラッシュするまで大量のゴミを受け取り始めます。作業中は警告が表示されます。ソケットを使用select()
すると、接続が終了したときに読み取り可能になりますが、どうすればわかりますか
if( FD_ISSET( socket, &read ) )
{
}
原因が通常のデータだけなのか、接続が終了したのか。
大いに感謝する!