如何处理守护事件

how to handle KEEPALIVE events?

本文关键字:守护 事件 处理 何处理      更新时间:2023-10-16

我有一个客户端服务器应用程序,我在服务器端设置了keep alivce套接字选项。我理解保留的概念,但是我应该如何处理保持生命的事件,无论保留机制是否在另一端重新解决了一个问题,我想关闭与该客户连接的插座。我查看了WSAIOCTL功能,但并没有真正了解它是否可以解决我的问题。

iv'e在线获得了这个示例:

tcp_keepalive   KeepAlive;
DWORD   dJunk;
//  Use socket level keep alive for about 5 minutes
//  Unless this is done Microsoft will not close the socket
//  in the event of a cable / VPN disconnection for 2 hours.
KeepAlive.onoff = 1;
KeepAlive.keepalivetime = 60000;
KeepAlive.keepaliveinterval = 60000;
WSAIoctl( soc, SIO_KEEPALIVE_VALS, &KeepAlive, sizeof( KeepAlive ), NULL, 0, 
&dJunk, NULL, NULL );

我知道这是非常理论上的问题,但我确实没有任何相关的代码文章。再次,我的问题是我应该如何处理连接故障,就像另一端被关闭一样。

您不这样做。没有"守护事件"之类的东西。TCP为您完成了所有功能。如果存储计时器次数耗尽,则将重置连接。