我有一个应用程序需要在某个时间向服务器发送一些数据。简单的方法是关闭连接,然后在我想发送一些东西时再次打开它。但我想保持连接打开,所以当我想发送数据时,我首先使用这个函数检查连接:
bool is_connected(int sock)
{
unsigned char buf;
int err = recv(sock,&buf,1,MSG_PEEK);
return err == -1 ? false : true;
}
不好的部分是这不起作用。当没有数据要接收时它会挂起。我能做些什么?如何检查连接是否仍然打开?