【发布时间】:2021-01-13 18:46:13
【问题描述】:
我目前正在编写点对点 UDP 聊天服务。 我为每个客户端有两个线程,一个接收消息,一个发送消息,这样两者都可以同时完成。我一直在努力寻找如何“找出”其他客户端将连接到哪些端口,因此我决定创建一个“广播”类(线程),客户端一旦创建就会向其中发送消息。 Broadcast 将每个唯一的 InetAddress + Port 存储在一个 HashMap 中,然后将接收到的消息发送给 HashMap 中的每个 Client。
所以我的问题是:这甚至被认为是 P2P 吗?从技术上讲,它们不会直接将消息发送给对方。我真的很难找到一种方法来实现我的其他想法,例如只使用广播类来创建这个带有客户端信息的 HashMap,然后将这个 HashMap 传输给每个客户端,这样他们现在就可以直接发送给每个 Peer。但后来我遇到了其他问题,例如:我的接收线程如何将此 HashMap 传达给发送线程?
【问题讨论】: