# re: 如何判断socket已经断开 回复 更多评论
2009-04-14 22:26 by
我最近也要写一个这方面类似的程序,有空可以交流一下
# re: 如何判断socket已经断开 回复 更多评论
2009-06-29 11:38 by
@Sunshine Alike
如果select返回的是0的话,那该怎么判断了
# re: 如何判断socket已经断开 回复 更多评论
2010-01-18 09:54 by
我的方法不一样,我用getsockopt来判断,还是蛮准确的
int SocketConnected(int sock)
{
if(sock<=0)
return 0;
struct tcp_info info;
int len=sizeof(info);
getsockopt(sock, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len);
if((info.tcpi_state==TCP_ESTABLISHED))
{
//myprintf("socket connected\n");
return 1;
}
else
{
//myprintf("socket disconnected\n");
return 0;
}
}
# re: 如何判断socket已经断开[未登录] 回复 更多评论
2010-03-01 15:26 by
我是用sue的方法,但是观察日志觉得好像有不准确的情况。因为客户端在断开后十几秒后程序重连还是能够重新连上的(注:局域网环境)。我也有看到判断为断开后,重连也连不上的情况。这使我对他将信将疑。
# re: 如何判断socket已经断开 回复 更多评论
2010-12-09 09:25 by
@su
socket(阻塞)没有数据可读时,select超时,不会去recv(),要怎么判断socket断开连接?