2011-09-10 18 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でそれをリクエストしたとき、すぐに応答しました(2  ms)。何が問題ですか?そして、私はこの問題をどうやって解決できますか?

+2

「バブル」とは何ですか? 「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)で試して、時間があるかどうか確認してください。また、同じプログラム内で2回目に接続すると時間の遅延があるかどうかを確認してください。私は遅れがないだろうと思う。 – Ali

答えて

0

私は理由は、サーバーがしばらくの間、ライン区切り文字を送信しませんので、readLine()方法が待機する疑いがあります。私はちょうどあなたがreadByte()をする場合は速くなければなりません。

Firefoxや他のブラウザが行ずつ読んでいないだろうと、それはそれらに影響を与えるdosn't。

+0

いいえ、私もreadByteをテストしますが、うまくいきません。 – babak6

-1

Firefoxはおそらく応答をキャッシュし、そのためにあなたに非常に迅速にそれを表示することができています。私はFirefoxのキャッシュをクリアしてもう一度時間を与えることをお勧めします。

あなたは、コールのドメイン名を使用している場合、Firefoxはまた、Javaで電話をかけることは、DNSルックアップを必要とする可能性があるのに対し、Firefoxで時間を節約することができDNSルックアップをキャッシュします。

あなたは、あなたがHTTP接続を監視し、あなたに何が起こっているかの良いアイデアを与えることができますFiddlerをダウンロードしてWindowsを使用している場合。

+0

私はそれを送る前にこれをすでにチェックしています。 – babak6

関連する問題