2016-10-24 7 views
1

次のコードを使用してHTTPリクエストメッセージを出力します。しかし、ブラウザからHTTPリクエストを出力してもループは終了しません。 bufferReaderは、HTTPリクエストを出力した後に新しいバイトを待っているようです。HTTPリクエストメッセージを正しく出力するには

InputStream inputStream = socket.getInputStream(); // socket is returned by 
                // serverSocket.accept() 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

// output HTTP request    
String line; 
while ((line = bufferedReader.readLine()) != null) { // the loop never ends 
    System.out.println(line);  
} 
+0

多分これは役立ちますか? http://stackoverflow.com/a/30023364/3525780 – Fusseldieb

答えて

0

これは、ピア接続が決して閉じられないためです。 これは決して閉じないと、readLine()はnullを返しません。

+0

うん。私はWebページを閉じ、ループが終了します。 – Hel

1

私はmhasanに同意します。予想されるメッセージの長さを事前に知っていれば、そのバイト数を読み取って明示的にループを終了することができます。

この回答のコード例を参照してください:https://stackoverflow.com/a/19863726/2751039

関連する問題