1. 探测连接是否存活选项: SO_KEEPALIVE, 默认关闭
打开:
默认2小时发送一次探测包
2. 探测接收缓存中可读的字节数:
unsigned int len = 0;
#ifdef _WIN32
ioctlsocket(fd, FIONREAD, &len)
#else
ioctl(fd, FIONREAD, &len) //linux
#endif
本文介绍了两种网络编程中的实用技巧:一是如何使用SO_KEEPALIVE选项来检测连接是否仍然活跃,其默认设置为关闭状态且每隔2小时发送一次探测包;二是通过ioctl函数获取接收缓冲区中的可读字节数。
1. 探测连接是否存活选项: SO_KEEPALIVE, 默认关闭
打开:
默认2小时发送一次探测包
2. 探测接收缓存中可读的字节数:
unsigned int len = 0;
#ifdef _WIN32
ioctlsocket(fd, FIONREAD, &len)
#else
ioctl(fd, FIONREAD, &len) //linux
#endif
1153

被折叠的 条评论
为什么被折叠?