首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么判断一个socket连接是否关闭

2012-02-17 
如何判断一个socket连接是否关闭?如何判断一个socket连接是否关闭?[解决办法]发心跳包www.google.com解决

如何判断一个socket连接是否关闭?
如何判断一个socket连接是否关闭?

[解决办法]
发心跳包
www.google.com
解决了别忘了告诉我………
[解决办法]
struct tcp_keepalive inKeepAlive, outKeepAlive;
unsigned long ulInLen, ulOutLen, ulBytesReturn;
inKeepAlive.onoff = 1;
inKeepAlive.keepaliveinterval = 30000;
inKeepAlive.keepalivetime = 300000;
ulInLen = sizeof(tcp_keepalive);
ulOutLen = sizeof(tcp_keepalive);
ulBytesReturn = 0;
memset( &outKeepAlive, 0, sizeof(tcp_keepalive) );
if (WSAIoctl(sock, SIO_KEEPALIVE_VALS, (LPVOID)&inKeepAlive, ulInLen,
(LPVOID)&outKeepAlive, ulOutLen, &ulBytesReturn, NULL, NULL) == SOCKET_ERROR){writelog( "WSAIoctl(keep alive) failed. error code = " + WSAGetLastError()) ;
}

如果 socket 关闭你就会接到通知。
p.s. 我的程序是 IOCP 的,通知从 GetQueuedCompletionStatus() 返回中得到。估计要是用 select() 的话,也可以从 errorlist 中得到;

热点排行