私はいくつかのデータをサーバにある時点で送信する必要のあるアプリケーションを持っています。簡単な方法は、接続を閉じて、何かを送信したいときにもう一度開くことです。しかし、私はデータを送信したいときに、私が最初にこの機能を使用して接続を確認するオープン接続を維持したい:ソケットが接続されているかどうかを確認してください
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
悪い部分は、これが動作しないということです。受信するデータがない場合にハングします。私に何ができる?接続がまだ開いているかどうかを確認するにはどうすればよいですか?
http://stackoverflow.com/questions/4142012/how-to-find-the-socket-connection-state-in-c – BoBTFish