【发布时间】:2015-04-15 09:24:59
【问题描述】:
我得到了与HttpURLConnection getInputStream() has one second delay 中描述的非常相似的行为:在 Java 中获取 http 连接的 InputStream 会导致至少 500 毫秒的延迟。 InputStreams 已正确关闭。使用 apache httpclient 实现也解决了这个问题。不幸的是,替换并不适合我的每个用例。
此外,延迟不会出现在每个设置中。我目前的观察如下:
- 使用 httpclient 库就像一个魅力
- 在服务器端使用 Windows Server 2012 R2 不会导致 W7 Professional 和 W7 Enterprise 延迟
- 客户端的 Java 版本无关紧要(32 位/64 位,7/8)
- 在客户端使用 Windows 7 Enterprise 或 Linux 非常棒
- 在客户端使用 Windows 7 Professional,在主机端使用 Linux 机器会导致(至少)500 毫秒延迟
此外,在服务器端批发Linux是没有解决办法的,使用Windows 7专业版不会出现问题。
我使用wireshark监控网络流量以发现差异但没有成功:延迟发生在客户端完全收到响应后。
最后,问题是:Windows 7 Professional 的(网络堆栈)存在导致这种行为的限制吗?是否可以调整 Windows 设置以免延迟发生?
【问题讨论】:
标签: java linux windows network-programming