这是我创建的应用程序,但存在以下问题:
客户端可以向其他客户端发送消息,但它们也收到与echo相同的消息。因此,我只希望能够发送一条消息并获得所有关联方的答复,而没有我自己的消息。
什么是处理与客户端或服务器断开连接的最佳方法?
我并没有要求答案(只是指示),而是允许客户发送文件的最佳方法。
答案 0 :(得分:1)
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 :(得分:0)
您可以尝试类似的操作
for (ClientHandler client : Server.activeClients) {
if(client!=this){
client.dos.writeUTF(this.name + "=" + received);
}
}