ある時点でデータをサーバーに送信する必要があるアプリケーションがあります。簡単な方法は、接続を閉じてから、何かを送信したいときにもう一度開くことです。しかし、接続を開いたままにしたいので、データを送信したいときは、まずこの関数を使用して接続を確認します。
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
悪い点は、これが機能しないことです。受信するデータがない場合はハングします。私に何ができる?接続がまだ開いているかどうかを確認するにはどうすればよいですか?