以前にサーバーに接続されたクライアントを介してサーバーがTCP接続を開く方法を教えてください。以下のコード例のようなシンプルなサーバーがあるとしましょう。サーバはクライアント接続を待機し、ハンドラスレッドは接続されたクライアントを処理します。以下のように、サーバーで操作を行うたびに、接続を再確立し、サーバーと通信して接続を閉じます。したがって、サーバーがクライアントからサーバーへのTCP接続を開こうとしている場合(クライアントからサーバーへのアクティブな接続がない場合)、どのように行うことができますか?サーバーからクライアントへのJava TCP接続
Serverコード
public class DServer {
public static void main(String[] args) {
ServerSocket serverSocket = new ServerSocket(7800);
while(true) {
Socket socket = serverSocket.accept();
System.out.println("Server established a new connection");
HandleConnection handler = new HandleConnection(socket);
handler.start();
}
}
}
クライアントコード
public class DClient{
public static void main(String[] args) {
Socket socket = new Socket("localhost", 7800);
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
//for every operation you do, first reestablish the connection,
//communicate with server, then close the connection.
}
}
説明のためにありがとう。私はクライアントとサーバーのパラダイムを誤解していませんでしたが、私はそれをそのように実装するよう求めている宿題に関する質問をしています。私はあなたが言ったようにクライアント上のサーバーソケットを開かなければなりませんでしたが、それは私には(多くのクライアントがいる場合)不自然に思え、それを実際に行う別の方法があるかどうかを理解したいと思っていました。 – user3717434