# 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斷開連接?