我可以更改/添加KeepAliveTime和相关的registryvariables,使Windows机器在空闲连接上发送TCP保持活动数据包吗?
我想知道是否有人成功地得到了这个工作。 具体来说,当TCP连接上的应用程序空闲时,没有什么特别的(setsockopt)来保持连接。
此Microsoft TechNet详细介绍使用KeepAliveTime和相关的registryvariablesconfiguration全系统保持活动状态 。
HKLM \系统\ CurrentControlSet \服务\ TCPIP \参数\ KeepAliveTime的
看起来像使用保持活动的Linux系统范围的configuration 。
但是,这需要程序使用setsockopt()和请求保持活动(正确?)。
请记住,即使在内核中configurationKeepalive支持,也不是Linux中的默认行为。 程序必须使用setsockopt接口请求它们的套接字的存活控制。 有相当less的程序实施Keepalive …
您对Windows中TCP keepalivefunction的评估就像是Linux一样正确。
您可以操纵与TCP Keepalive相关的registry参数,但除非应用程序使用setsockopt()请求keepalive,否则默认情况下不会发送任何内容。
如果您希望在Windows上看到Keepalive在运行,并且不想编写代码,请在PuTTY SSH / TELNET / etc客户端的“连接”属性中勾选“启用TCP保持连接(SO_KEEPALIVE)”,启动连接,让它闲置,嗅探交通。 (这是我可以想到的第一个应用程序,我知道可以consccoulyconfiguration使用SO_KEEPALIVE …)