【问题标题】:JAVA Socket communication Client -> Server -> ClientJAVA Socket通信客户端->服务器->客户端
【发布时间】:2025-11-21 20:50:01
【问题描述】:

所以我有一个关于聊天的小java项目..

我能够创建线程服务器,并能够使用输入和输出流与服务器连接和通信。

现在我的问题是,如果第二个客户端进入服务器,我希望第一个客户端能够与第二个客户端通信,反之亦然。另外如果第三个客户端连接到服务器 我不希望第三个客户端能够与第一个和第二个客户端通信。

我该怎么做??

【问题讨论】:

  • 您需要将“房间”的概念添加到您的应用程序中,并且对于每个客户,您需要为客户提供一组预配置的房间,或者询问客户想要哪个房间取得联系。其他解决方案是添加“联系人列表”的概念(如 Skype),并允许您的客户仅“看到”客户列表中的其他客户。

标签: java sockets stream


【解决方案1】:

使用一些列表数组来保存您的客户,然后使用user 您可以这样做

if (list.indexOf (user) == 0 || list.indexOf (user) == 1) {
    if (list.indexOf (sendto) == 0 || list.indexOf (sendto) == 1) {
        // chat OK
    }
}

【讨论】: