Java Client/Server 聊天应用程序

Java Client/Server Chat Application

这是我创建的应用程序,但我遇到以下问题:

  1. 客户端能够向其他客户端发送消息,但他们也收到与回显相同的消息。所以我希望能够发送消息并从所有关联方获得响应,但没有我自己的消息。

  2. 处理与客户端或服务器断开连接的最佳方法是什么。

  3. 我不是在寻求答案(只是指示),关于允许客户端发送文件的最佳方式是什么。

1-)发送消息前可以在for子句中检查用户。

for (ClientHandler client: Server.activeClients) {
   if (!client.name.equals(this.name)) {
      client.dos.writeUTF(this.name + "=" + received);
   }
}

2-) 您不需要使用 while(true) 更改它以便在用户断开连接时完成。

while (!s.isClosed()) {

3-) 首先你需要发送文件名和文件大小,然后你可以在发件人中发送文件的字节数。接收方将获取字节直到达到文件大小,并将其保存为具有给定名称的文件。

  1. 你可以这样试试

    for (ClientHandler client : Server.activeClients) {
        if(client!=this){
            client.dos.writeUTF(this.name + "=" + received);
        }
    }