端末のサーバーからクライアントにメッセージを渡そうとしています。私がしたいのは、クライアントでコマンドを入力し、サーバーからの応答を取得し、クライアントを再起動せずに別のコマンドを入力できるようにすることです(java Clientによって)。Javaクライアントサーバー
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では、端末に複数の入力を入力することはできますが、入力するとサーバからの応答が出力され、クライアントを再起動しなければ別の入力を行うことはできません。
ご協力いただければ幸いです。
おかげ
クライアントを再起動するの何を意味するのですか?レスポンスがnullの場合、Client.javaは終了していますか? –
端末で何らかのコマンドを入力してEnterキーを押すと、クライアント端末に印刷されたサーバから応答が送られます。しかし、その後、別のコマンドを入力して、サーバからの応答を入力して受信することはできません。クライアントを終了してもう一度再起動する必要があります。 – user2556140
私は、コマンドを入力して、クライアントをJavaクライアントから再起動することなく、継続的に応答できるようにしたいと考えています。 – user2556140