ソケット接続は双方向であるため、1 つの接続で読み取りと書き込みを行うことができます。ソケットにワイヤプラグを接続するのと似ているため、ソケットという名前が付けられています。
やり方はこちら
Socket socket = new Socket("10.0.0.1", 1234);
OutputStream os = socket.getOutputStream();
InputStream is socket.getInputStream();
new MyInputServiceThread(is).start();
これで、OS から書き込み、OS から読み取ることができます。同期しないことが予想される場合は、同じスレッドまたは異なるスレッドで実行できます。
2 では、1 つのアプリに任意の数のクライアントとサーバー ソケットを含めることができます。少なくとも理論的には。実用上の制限があります。サーバーソケットの場合、接続を受け入れてから、開いているソケットを渡すスレッドを生成すると、サーバーソケットはより多くの接続を受け入れる準備ができているはずです。つまり、同じポートで複数の接続を許可するには、接続を受け入れた後にブロックしないようにする必要があります。ただし、複数のスレッドで複数のサーバー ソケットを開くこともできます。
ここに例があります
ServerSocket server = new ServerSocket(1234);
while (true) {
Socket socket = server.accept();
// Once it spawns the thread that socket connection is serviced by
//the thread and the
//server socket is ready to accept new connections.
new Mythread(socket).start();
// above Mythread extends Thread....
}
クライアントとしてのアプリの場合、制限はありません。つまり、接続したい数だけ。
別の注意事項... httpsの場合、証明書も受け入れる必要があります。つまり、秘密の公開鍵を処理する必要があります。あなたは本当にそれをしたいですか?Tomcat やその他のアプリ サーバーは既にそれを行っているためです。これが Web アプリになる場合は、適切に署名されたデジタル証明書についても考慮する必要があります。イントラネットの場合、ブラウザがアクセスに使用していた場合、自己生成の自己署名証明書をインポートする必要があります。