Я пытаюсь передать сообщение от сервера к клиенту в терминале. То, что я хотел бы, чтобы программа выполняла, заключается в том, что на клиенте она должна иметь возможность вводить команду, получать ответ от сервера и иметь возможность вводить другую команду без перезапуска Client (через java Client).Java Client Server
Client.java
Socket socket = new Socket(host, port);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String response = "";
boolean continuation = true;
while(continuation) {
Scanner input = new Scanner(System.in);
String command = (input.nextLine()).toString();
bw.write(command+"\r\n");
bw.flush();
if(command.equals("cmd1") {
while ((response = br.readLine()) != null) {
System.out.println(response);
}
}
System.out.println("This line will not execute as well.");
}
Server.java
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
String[] in = br.readLine().split("\\s+");
String command = in[0];
if(command.equals("cmd1")) {
String response = "";
response = response + "RESPONSE:\r\n";
response = response + "This is a response.\r\n";
bw.write(response);
bw.flush();
}
Если я не ставлю в то время как ((ответ = br.readLine()! = NULL) {. ..} в Client.java, можно ввести несколько входов в терминале, но если я его положу, он печатает ответ с сервера, а другой вход не может быть выполнен без перезапуска клиента.
Любая помощь будет оценена по достоинству.
Благодаря
что означают перезапуска клиента? Вы хотите сказать, когда ответ равен нулю, клиент.java завершается? –
Когда я набираю некоторую команду в терминале и нажимаю enter, ответ должен быть отправлен сервером, который печатается на клиентском терминале. однако после этого невозможно ввести другую команду и нажать «Ввод и получение ответа от сервера». Я должен был бы завершить клиент и снова перезапустить его. – user2556140
Я бы хотел, чтобы он мог вводить команду и получать ответ непрерывно без перезагрузки клиента клиентом java Client – user2556140