我正在尝试找出 keep-alive 在 .NET 中的工作原理,但此处的链接不起作用。有人可以发布规范的链接吗?
我在找什么:
我想知道发送保持活动数据包的频率。
我是否必须通过命令设置 KeepAlive:
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
仅在服务器端甚至客户端必须设置此标志?
我正在尝试找出 keep-alive 在 .NET 中的工作原理,但此处的链接不起作用。有人可以发布规范的链接吗?
我在找什么:
我想知道发送保持活动数据包的频率。
我是否必须通过命令设置 KeepAlive:
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
仅在服务器端甚至客户端必须设置此标志?
不确定这是您要查找的内容,但SocketOptionName
枚举有一个KeepAlive
成员,如这里所示。
从文档中,您可以这样使用它:
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
我的博客上有一篇关于保活的文章。简短的回答:双方都需要某种形式的保活,但是如果您从一侧发起“民意调查”,则可以充当保活。另外,我建议将 keepalive 直接构建到协议中,而不是使用套接字设置。
在我的博客文章中,我没有详细介绍 keepalive 套接字设置,因为我认为它不是很有用(有关详细信息,请参阅博客文章)。
请注意,Windows 2000 更改了“全局注册表设置”。现在可以根据每个连接进行更改。不过,我仍然不推荐它作为 keepalive(有关详细信息,请参阅我的博客文章)。