TCP/IP: 设置连接建立后保持活动的套接字选项
TCP/IP: set socket option for keep-alive after connection has been established
是否可以在一些假设的应用程序级握手后设置套接字的 SO_KEEPALIVE
选项(TCP 保持活动间隔和 TCP 保持活动值)?还是必须在调用 accept
之前设置?
我关心 Linux、Windows 和 eCos lwIP 堆栈之间的互操作性,因此非常感谢有关这两个平台的信息。
正如EJP所说,你可以随时设置。 man page 表示:
setsockopt() manipulate options for the socket referred to by the file descriptor 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;
}
您还可以阅读这篇文章tutorial了解更多详情。
是否可以在一些假设的应用程序级握手后设置套接字的 SO_KEEPALIVE
选项(TCP 保持活动间隔和 TCP 保持活动值)?还是必须在调用 accept
之前设置?
我关心 Linux、Windows 和 eCos lwIP 堆栈之间的互操作性,因此非常感谢有关这两个平台的信息。
正如EJP所说,你可以随时设置。 man page 表示:
setsockopt() manipulate options for the socket referred to by the file descriptor 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;
}
您还可以阅读这篇文章tutorial了解更多详情。