java - Java 客户端/服务器聊天应用程序
问题描述
这是我创建的应用程序,但我有以下问题:
客户端能够向其他客户端发送消息,但它们也会收到与回显相同的消息。因此,我希望能够发送消息并从所有相关方获得响应,但没有我自己的消息。
处理与客户端或服务器断开连接的最佳方法是什么。
我不是要求答案(只是指示),它是如何让客户发送文件的最佳方式。
解决方案
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-) 首先您需要发送文件名和文件大小,然后您可以在发送方发送文件的字节。接收器将获取字节直到达到文件大小,并将其保存为具有给定名称的文件。
推荐阅读
- java - VS Code Java 调试器生成大量未跟踪文件
- openlayers - VectorTileSource 没有以正确的方式从 Geojson 呈现特征
- firebase - snapshot.data.emailVerified 在用户flutter firebase验证电子邮件后不会实时更改屏幕
- azure - 我如何知道 Azure 中的虚拟机使用本地网络网关路由连接到本地网络?
- javascript - 翻译一个元素回到原点
- python - 我可以获得 Pytube 的下载链接吗?
- database - 让我的 Web 应用程序成为 SSO 身份提供者
- r - 按状态分组并查找处于此状态的日期时间的差异
- python - 为什么启动系统文件执行失败?
- python - 使用 Python 在 Maya 中使用相同帧范围在列表中命名相机/镜头