2011-09-10 130 views
-2

我将从java中的套接字中读取数据。这是我会怎么做: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   ms)。问题是什么?我该如何解决这个问题?

+2

什么是'bab'?以及“当我用firefox请求它时”是什么意思? – Ali

+0

bob是一个插座连接器。我在下面输入下面的确切号码: bab.connect(“192.168.2.193”,8080);在Firefox中使用 。 – babak6

+0

我之所以问“bab”是什么,是因为我想看看你是否使用了'BufferedReader'。在[Java教程](http://download.oracle.com/javase/tutorial/networking/sockets/readingWriting.html)中试试这段代码,看看是否有时间延迟。另外,如果您第二次在同一个程序中连接,请查看是否有时间延迟。我怀疑不会有延迟。 – Ali

回答

0

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

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

+0

我也测试了readByte,但它也不起作用。 – babak6

-1

Firefox可能会缓存响应,因此可以非常快速地向您显示。我建议你清除Firefox上的缓存并重新计时。

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

如果您使用Windows,然后下载Fiddler这将允许您监视HTTP连接,并让您更好地了解发生了什么。

+0

我在发送之前已经检查过它。 – babak6

相关问题