3

我正在尝试找出 keep-alive 在 .NET 中的工作原理,但此处的链接不起作用。有人可以发布规范的链接吗?

我在找什么:

  • 我想知道发送保持活动数据包的频率。

  • 我是否必须通过命令设置 KeepAlive:

    s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

    仅在服务器端甚至客户端必须设置此标志?

4

2 回答 2

6

不确定这是您要查找的内容,但SocketOptionName枚举有一个KeepAlive成员,如这里所示。

从文档中,您可以这样使用它:

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
于 2010-07-24T18:52:02.853 回答
2

我的博客上有一篇关于保活的文章。简短的回答:双方都需要某种形式的保活,但是如果您从一侧发起“民意调查”,则可以充当保活。另外,我建议将 keepalive 直接构建到协议中,而不是使用套接字设置。

在我的博客文章中,我没有详细介绍 keepalive 套接字设置,因为我认为它不是很有用(有关详细信息,请参阅博客文章)。

请注意,Windows 2000 更改了“全局注册表设置”。现在可以根据每个连接进行更改。不过,我仍然不推荐它作为 keepalive(有关详细信息,请参阅我的博客文章)。

于 2010-07-24T19:20:29.347 回答