Я уже некоторое время занимаюсь исследованием этой проблемы и не могу решить ее.Я постоянно зацикливаюсь на цикле for или цикле while, в зависимости от того, что я запускаю.Я извиняюсь, если это выглядит как дубликат, но я рассмотрел эту страницу и эту , а также несколько других, но мне не удалось решить эту проблему.
Я настроил несколько тестовых отпечатков, чтобы посмотреть, что было выполнено, и он отлично проходит первую итерацию, однако после этого он застрянет в reader.readLine ().В этом случае потребуется только одна итерация, потому что readLine () будет использовать строку, которую он читает, что означает, что следующая строка, которую я предполагаю, будет нулевой, а цикл while завершится, но, очевидно, это не так.
Кроме того, можно ли использовать несколько writer.write (string) для одного writer.flush ()?Просто любопытно, потому что я также пытался разделить две переменные сообщения на моем Сервере, а затем использовать одну очистку, но у меня все еще была проблема застревания.
Клиент:
while(!message.equals("Quit") || !message.equals("quit"))
{
System.out.println("Test1");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
System.out.print("Message to send: ");
message = scanIn.nextLine();
System.out.println("Test2");
writer.write(message + "\r\n");
writer.flush();
String serverMsg;
System.out.println("Test3");
for (String line = reader.readLine(); line != null; line = reader.readLine())
{
System.out.println(line);
System.out.println("Test4");
}
/*while ((serverMsg = reader.readLine()) != null)
{
if(message.equals("quit") || message.equals("Quit"))
{
break;
}
System.out.println("Test4");
System.out.println(serverMsg);
}*/
System.out.println("Test5")
}
System.out.println("Test6");
Сервер:
System.out.println("Server: Running");
ServerSocket mySocket = new ServerSocket(8189);
Socket socket = mySocket.accept();
while (true)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String message = reader.readLine().trim();
String message2 = message;
message = ProjectSQL.avgFromSQL(message.substring(0,1), message.substring(1,2));
message2 = ProjectSQL.avgFromSQLCurrent(message2.substring(0,1), message2.substring(1,2));
writer.write(message+" "+message2+"\r\n");
writer.flush();
}
Вывод моего файла: