TCP / IP:build立连接后,设置保持活动的套接字选项

是否有可能在一些假设的应用程序级别握手之后设置套接字SO_KEEPALIVE选项(TCP保持活动时间间隔和TCP保持活动值)? 还是必须在电话accept之前设置?

我关心的是Linux,Windows和eCos lwIP协议栈之间的互操作性,所以关于这两个平台的信息是值得赞赏的。

正如EJP所说,你可以随时设置它。 手册页说:

setsockopt()操作由文件描述符sockfd引用的套接字的选项。

您可以像这样设置或取消设置SO_KEEPALIVE

 int iOption = 1; // Turn on keep-alive, 0 = disables, 1 = enables if (setsockopt(socketHandle, SOL_SOCKET, SO_KEEPALIVE, (const char *) &iOption, sizeof(int)) == SOCKET_ERROR) { cerr << "Set keepalive: Keepalive option failed" << endl; } 

您也可以阅读本教程以获取更多详细信息。