Java Client/Server 聊天应用程序
Java Client/Server Chat Application
这是我创建的应用程序,但我遇到以下问题:
客户端能够向其他客户端发送消息,但他们也收到与回显相同的消息。所以我希望能够发送消息并从所有关联方获得响应,但没有我自己的消息。
处理与客户端或服务器断开连接的最佳方法是什么。
我不是在寻求答案(只是指示),关于允许客户端发送文件的最佳方式是什么。
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);
}
}
这是我创建的应用程序,但我遇到以下问题:
客户端能够向其他客户端发送消息,但他们也收到与回显相同的消息。所以我希望能够发送消息并从所有关联方获得响应,但没有我自己的消息。
处理与客户端或服务器断开连接的最佳方法是什么。
我不是在寻求答案(只是指示),关于允许客户端发送文件的最佳方式是什么。
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); } }