Java套接字延迟

时间:2011-09-10 07:49:41

标签: java sockets

我将从java中的套接字读取。这就是我要做的事情:

System.out.println("Start Reading");
/* bab is socket connector */
/* and readLine is the method below.
/* public String readLine()throws IOException
{
    String a = inStream.readLine();
    return a;
}
*/
for( int j=0;j<9;j++)
{
    response = bab.readLine();
    System.out.println(response);
}

我看到打印“开始阅读”和响应的第一行之间有很多延迟(2-3秒)。但是当我用Firefox请求它时,它很快响应(20毫秒)。问题是什么?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我怀疑原因是服务器在一段时间内没有发送行分隔符,因此readLine()方法等待。我敢打赌,如果你只是readByte()它必须快速。

由于Firefox或任何其他浏览器不能逐行阅读,因此不会影响它们。

答案 1 :(得分:-1)

Firefox可能会缓存响应,因此能够非常快速地显示给您。我建议你清除Firefox上的缓存并再次计时。

如果您使用域名进行呼叫,那么Firefox也会缓存DNS查找,这可以节省Firefox的时间,而使用Java进行调用可能需要DNS查找。

如果您使用的是Windows,请下载Fiddler ,这样您就可以监控HTTP连接,并让您更好地了解正在发生的事情。