如何判断一个socket连接是否关闭? 如何判断一个socket连接是否关闭? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 发心跳包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 中得到; 如果你要判断网络状况,可以发心跳包什么的,如果是想判断下本机的那个SOCKET是不是有效的,可以select,最后的参数结构里都为0可以马上返回,看下select的返回值就可以啦 请问下mfc 左侧导航的问题? 创建对象占用内存过大 OPENGL里有啥办法判断一个点是否属于某一个物体(如box,sphere等) 看看我的代码,想不通啊 我想了解一些关于声音识别编程方面的技术 求图象处理算发的网址. SDI应用程序启动是如何最大化窗口? SPI菜鸟问题,有关WSPStartup()的最后一个参数。 请教个mfc的问题! 在InstallShield中判断用户输入的序列号错,应该怎么办更好? vc如何浏览在http服务器上的文件夹 多文档视图新建子窗口问题
www.google.com
解决了别忘了告诉我………
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 中得到;