私は一度に複数のクライアントをサーバーに接続し、サーバーをすべてのクライアントに通信したいと考えています。 サーバが各クライアントをどのように認識するか。特定のクライアントにデータを送信する方法は?java in tcp session
を考慮すると、3つのクライアントA、B、Cがあります。すべてのクライアントがサーバーに接続されます。サーバーはB.にメッセージを送信したいと思いますか?
私は一度に複数のクライアントをサーバーに接続し、サーバーをすべてのクライアントに通信したいと考えています。 サーバが各クライアントをどのように認識するか。特定のクライアントにデータを送信する方法は?java in tcp session
を考慮すると、3つのクライアントA、B、Cがあります。すべてのクライアントがサーバーに接続されます。サーバーはB.にメッセージを送信したいと思いますか?
あなたが正しく理解していれば、1回の接続でソケットをバインドする必要はありません。
Clientクラス:
public class TCPClient {
public TCPClient(String host, int port) {
try {
clientSocket = new Socket(host, port);
} catch (IOException e) {
System.out.println(" Could not connect on port: " + port + " to " + host);
}
}
サーバー(ホスト)クラス:
public class TCPListener {
public TCPListener(int portNumber) {
try {
serverSocket = new ServerSocket(portNumber);
} catch (IOException e) {
System.out.println("Could not listen on port: " + portNumber);
}
System.out.println("TCPListener created!");
System.out.println("Connection accepted");
try {
while (true) {
Socket clientConnection = serverSocket.accept();
//every time client's class constructor called - line above will be executed and new connection saved into Socket class.
}
} catch (Exception e) {
e.printStackTrace();
}
}
最も単純な例である あなたのクライアントコードの意志がそのように見えます。詳細はこちらをご覧ください: http://www.oracle.com/technetwork/java/socket-140484.html
というサーバーが特定のクライアントと通信することになります。どのように可能ですか? –
@Rince Thomas:サーバーには、接続されているクライアントごとに別々の 'Socket'オブジェクトがあります。 – caf
私はあなたがこれについてどうやって行くのか分かりません。あなたが後に質問があれば、私はこの答えを更新します、のように...
私はアイデアを持っていますが、私は特定のクライアントにデータを送信するためのコードを取得しませんでした –
これはapache minaを使用してです –
あなたが何を使用するかは関係ありません。新しいクライアント接続はすべて、サーバーで別の受け入れられたソケットによって表されます。あなたの質問は不明なままです。 – EJP
あなたの質問は非常に明確ではないthis tutorial about sockets.
を参照してください。なぜ複数回接続しないのですか?私はあなたがそのことを考えていると仮定していると仮定します。その場合、あなたの質問はなぜそれがうまくいかないのか、なぜあなたが達成しようとしているのかを説明してはいけません。 –
ここでの答えは、「接続ごとのスレッドを使用する」(またはNIOを使用するマルチプレックス) – nos