首页 > 解决方案 > Java 客户端/服务器聊天应用程序

问题描述

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

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

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

  3. 我不是要求答案(只是指示),它是如何让客户发送文件的最佳方式。

标签: javaclient-server

解决方案


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-) 首先您需要发送文件名和文件大小,然后您可以在发送方发送文件的字节。接收器将获取字节直到达到文件大小,并将其保存为具有给定名称的文件。


推荐阅读