私の Java サーバーは入力の最初の行のみを認識します。どうしてか分かりません。次のような複数行のテキストを入力しています
Kerv
Yeah
Only
しかし、私のJavaサーバーは「Kerv」のみを出力し、ええとのみがなくなりました。ここで私のコードに何か問題がありますか?
サーバー側コード:
import java.io.*;
import java.net.*;
public class TestTCP
{
private static final int PORT = 1234;
private static ServerSocket serverSocket;
private static Socket clientSocket;
private static InputStreamReader inputStreamReader;
private static BufferedReader bufferedReader;
private static String message;
public static void main(String[] args)
{
try
{
serverSocket = new ServerSocket(PORT, 0, InetAddress.getLocalHost());
System.out.println("IP: " + serverSocket.getInetAddress() + " Port: " + serverSocket.getLocalPort());
} catch (IOException e)
{
System.out.println("Could not listen on port: 4444");
}
System.out.println("Server started. Listening to the port 4444");
while (true)
{
try
{
clientSocket = serverSocket.accept(); // accept the client connection
inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
bufferedReader = new BufferedReader(inputStreamReader); // get the client message
message = bufferedReader.readLine();
while (message != null) {
System.out.println(message);
message = bufferedReader.readLine();
}
System.out.println(message);
inputStreamReader.close();
clientSocket.close();
} catch (IOException ex)
{
System.out.println("Problem in message reading");
}
}
}
}