【发布时间】:2019-11-21 11:33:50
【问题描述】:
这是我创建的应用程序,但我有以下问题:
客户端能够向其他客户端发送消息,但它们也会收到与 echo 相同的消息。因此,我希望能够发送消息并获得所有相关方的响应,但没有我自己的消息。
处理与客户端或服务器断开连接的最佳方法是什么。
我不是要回答(只是说明),它是如何让客户端发送文件的最佳方式。
【问题讨论】:
标签: java client-server
这是我创建的应用程序,但我有以下问题:
客户端能够向其他客户端发送消息,但它们也会收到与 echo 相同的消息。因此,我希望能够发送消息并获得所有相关方的响应,但没有我自己的消息。
处理与客户端或服务器断开连接的最佳方法是什么。
我不是要回答(只是说明),它是如何让客户端发送文件的最佳方式。
【问题讨论】:
标签: java client-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-) 首先您需要发送文件名和文件大小,然后您可以在发送方发送文件的字节。接收器将获取字节直到达到文件大小并将其保存为具有给定名称的文件。
【讨论】:
你可以试试这样的
for (ClientHandler client : Server.activeClients) {
if(client!=this){
client.dos.writeUTF(this.name + "=" + received);
}
}
【讨论】: