0

学校のプロジェクト用にCyber​​Café管理ソフトウェアを作成しています。

サーバーに接続されている新しい各コンピューター(クライアント)を特定するにはどうすればよいですか?すでに接続を行っていますが、各コンピューターを識別する方法がわかりません。各クライアントコンピューターに名前またはIDを設定する必要があります。

誰かが私にサンプルコードや何か提案をくれますか?:)

ServerSocket server;
Socket client;

public void Sync() {
    try {
        server = new ServerSocket(35557);
        System.out.println("Server started, waiting for client...");
        while (true) {
            System.out.println("Waiting for client...");
            client = server.accept();
            new Sync_procesador().start();
            System.out.println("Se conecto! :D");
        }
    } catch (Exception ex) {
        System.out.println(ex);
    }

}
4

3 に答える 3

1

リモートネットワークカードのIPアドレスを取得したい場合は、追加するだけです

client.getInetAddress()
于 2012-08-30T23:44:11.250 に答える
1

クライアントは、に代わって受け取るソケットオブジェクトによってすでに識別されていますserver.accept()。それは本当にあなたがそれでさらに何をしたいかに依存します。複数のポートを使用してアプリケーションを実行しない場合は、問題ありませんsocket.getInetAddress().getHostAddress()

于 2012-08-31T00:08:52.450 に答える
1

コメントから判断すると、あなたが本当に求めているのは、接続されたコンピューターのセットをユーザーインターフェイスに表示する方法についてのアイデアだと思います。(あなたはすでにコンピューターを識別する方法を知っていました。)

私の提案は、いくつかの簡単なオプションを試して、それらが機能するかどうかを確認することです。基本的な考え方は、接続されているすべてのコンピューターを認識しているデータ構造を作成し、情報(名前のリストなど)を抽出してUIに表示することです。何を表示するかはあなた次第です。可能性は次のとおりです。

  • コンピューターのIPアドレス
  • コンピューターのDNS名
  • コンピューターを使用している人の名前またはニックネーム(ユーザーにログインさせるなどして取得する必要があります)

簡単なことを試して、それがどれほど効果的かを確認することをお勧めします。その後、プロジェクトに時間があれば、(後で)修正します。

于 2012-08-31T02:49:03.103 に答える