2013-03-07 113 views
6

在Windows(Vista和更高版本)中,是否有一种方法或工具可以帮助确定现有的,已建立的传出TCP连接,它是使用SO_KEEPALIVE创建的选项。确定现有连接是否在Windows下使用TCP KeepAlive

在Unix平台上,通常可以看到使用netstat(即。'netstat -o'将为KEEPALIVE显示一个单独的列)。

Windows上的Netstat没有此功能。我测试过的其他Microsoft/SysInternals网络工具也不是。

我似乎无法找到可以提供此信息的工具。

情景是:在Windows 2008 R2服务器上运行的应用程序需要在其建立的所有连接上启用TCP保持活动。某些应用程序没有选项来启用TCP keepalive,并且我需要某种方式来确定它是否默认情况下为这些应用程序启用。

需要说明的是:我需要一些工具或者关于如何编程工具的建议,它显示了现有的winsock连接是否启用了TCP Keepalive。虽然还有其他方法可以确定(例如嗅探流量并查看是否发送Keepalive数据包),但它们都具有不确定性。另外,我们正在讨论很多服务器和许多应用程序。

回答