0

我正在为一个学校项目制作一个网吧管理软件。

如何识别连接到服务器的每台新计算机(客户端)?我已经完成了连接,但我不知道如何识别每台计算机。我需要为每台客户端计算机设置名称或 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

客户端已通过您代表接收的套接字对象识别server.accept()。这真的取决于你想进一步用它做什么。如果您不使用多个端口运行应用程序socket.getInetAddress().getHostAddress()应该没问题。

于 2012-08-31T00:08:52.450 回答
1

从评论来看,在我看来,您真正想要的是关于如何在用户界面中显示一组连接的计算机的想法。(您已经知道如何识别计算机。)

我的建议是,您只需尝试一些简单的选项,看看它们是否有效。基本思想是创建一个了解所有已连接计算机的数据结构,然后提取信息(如名称列表)并将其显示在 UI 中。由您决定显示什么。可能性包括:

  • 计算机的 IP 地址
  • 计算机的 DNS 名称
  • 使用计算机的人的姓名或昵称(您需要通过让用户登录或其他方式获得)

我建议尝试一些简单的东西,看看它有多有效。如果你有时间在你的项目中,然后修改它(稍后)。

于 2012-08-31T02:49:03.103 回答
1

您可能想获取远程网卡的IP地址,只需添加

client.getInetAddress()
于 2012-08-30T23:44:11.250 回答