文字列をサーバーに送信する単純なクラスを作成しました。どちらもJava Sockets APIを使用して通信します。サーバーは、クライアントが送信した内容を読み取り、別の文字列で応答します。しかし、クライアントはその応答を読み取ることができません。 Java Sockets APIを使用してサーバー応答を読み取る
この
は、クライアントクラスです:import java.io.IOException;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8181);
socket.getOutputStream().write("Hello".getBytes());
int read;
while ((read = socket.getInputStream().read()) > -1) {
System.out.print((char) read);
}
socket.close();
}
}
そして、これは、サーバ・クラスである:私は私が知っている `tをため、問題は、クライアントの実行フローであってもよいことを想像
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8181);
while (true) {
Socket socket = serverSocket.accept();
int read;
while ((read = socket.getInputStream().read()) > -1) {
System.out.print((char) read);
}
socket.getOutputStream().write("Hi!".getBytes());
}
}
}
どうすればサーバーの応答を待つことができますか?つまり、サーバーの応答を読み取ることができるクライアントを実装する方法は?
これは間違いなく、 'while((read = socket.getInputStream()。read())> -1)'サーバーは、クライアントが接続を閉じるまで待機します。 –