9

这是我第一次用 java 编程网络。我正在寻找一种以某种方式向整个网络中的所有节点发送广播的方法。让他们知道我的存在。我正在尝试制作多人网络游戏,我希望客户能够看到所有可用的游戏来选择加入哪个游戏。我想知道如何从服务器广播以及如何让客户端收听。

请简单点,我是新手:)

提前致谢。

4

3 回答 3

6

要广播数据包,请将它们发送到给定子网的广播地址(子网的最后一个地址)。IP255.255.255.255零网络的广播地址。

IP 广播地址 255.255.255.255 存在一个特殊定义。它是零网络的广播地址或0.0.0.0,在互联网协议标准中代表这个网络,即本地网络。到这个地址的传输受到定义的限制,因为它永远不会被将本地网络连接到 Internet 的路由器转发。

广播地址

因此,要广播到您当前的网络,请将数据包发送到255.255.255.255.

于 2011-07-04T07:34:01.737 回答
2

不要混淆术语。

广播通常用于 UDP。UDP 是不可靠的,因为它不检查客户端是否接收到所有数据包。向大量客户端打开大量 TCP 连接不是广播。

要让您的客户端监听端口,您需要使用 ServerSocket 并读取它。

于 2011-07-04T07:28:33.373 回答
0

我建议您使用PubSubHubbub或类似的协议。基本上,您将拥有一个“集线器”,向其发送您想要“广播”的通知。每个节点都订阅该主题,方法是提供一个 URL,当新数据到达时集线器可以调用该 URL。当“集线器”收到此广播时,集线器会联系每个订阅 URL 以让节点知道有新数据。

于 2011-07-04T07:38:53.040 回答