在Windows 7上接受套接字连接需要一秒多的时间

以下是我所做的:

  • 我写了一个最小的Web服务器(使用Qt,但我不认为这是相关的)。
  • 我在合法的Windows 7 32位上运行它。

问题:

  • 如果我向Firefox,IE,Chrome或Safari发出请求,则需要大约一秒的时间,然后我的服务器才会看到有新的连接被接受。

线索:

  • 使用其他客户端(wget,自己的testing客户端,只是打开一个套接字)比Firefox,IE浏览器,谷歌浏览器看到新的连接是毫秒的事情。
  • 我安装了Apache并尝试了上面提到的客户端。 如预期的那样服务请求需要约50ms。
  • 运行Windows XP(或在Linux下编译和运行相同的代码)时,该问题不可重现,
  • 这个问题似乎只有当连接到本地主机时才会出现。 通过互联网连接并为连接提供服务的朋友只需要几毫秒。
  • 在不同端口运行服务器对1秒延迟没有影响

以下是我尝试过的不幸的事情:

  • 停止了Windows Defender服务
  • 停止Windows防火墙服务

有任何想法吗? 这是Windows 7中的一些聪明的“安全function”吗? Apache为什么不受影响? 为什么只有浏览器受到影响?

我与MidnighToker – 只有当你点击“本地主机”或通过本地IP地址的延迟? 如果只是当你瞄准'本地主机'检查你的主机文件的奇数条目。 Windows Vista和7还包括IPv6的HOSTS条目(“:: 1 localhost”)。

由于我个人看到未使用的IPv6连接在启用和未使用的情况下减慢了Firefox中Ubuntu上的网页浏览连接速度,并且读取了其他人在Windows中看起来类似的情况,所以可能需要考虑一些事情(我没有亲自遇到问题在Vista或Win7)。

在Ubuntu下,Firefox有自己的“不使用IPv6”设置,可以修复延迟,而不需要进行全系统的networking更改。 所以也许Firefox的Windows也有它(不知道,我用Windows中的IE浏览器):

以下是如何在Firefox中禁用它,或者至less开始testing理论:

1.在地址栏inputabout:config ,按Enter键。

2.在列表中findnetwork.dns.disableIPv6

3.右键单击 – >切换(您希望将其设置为“ true ”以禁用)

4.重新启动你的Mozilla应用程序,然后重试。

而不是连接到localhost ,如果连接到您的真实 (但本地)IP地址会发生什么?

例如http://192.168.1.1/