有没有办法在局域网内发送UDP数据包,以便每台机器都能收到它? (当然没有保证,因为它的UDP)。发送UDP数据包给LAN中的每个人?
喜欢,发送请求“你好,有人在那里?”然后听一个回应?
我得到了与发送和接收没有问题,只是想知道是否有比尝试每个IP地址的其他可能的方式...
编辑:这是我目前使用:
...
multicastSocket = new MulticastSocket();
multicastSocket.setBroadcast(true);
broadcastGroup = InetAddress.getByName("255.255.255.255");
// multicastSocket.joinGroup(broadcastGroup);
...
最后一行代码被注释掉了,因为它会引发异常。现在我已经读过发送数据包到255.255.255.255“已经过去几年不推荐使用”,而且很可能在很多局域网中无法使用。另外,我不确定我是否需要MulticastSocket
或者正常的DatagramSocket
也可以。但无论如何,现在发送UDP广播的首选方式是什么?
255.255.255.255不是一个有效的多播组地址,并且您不加入多播组发送给它们,而是从它们接收。你需要决定你在做什么:广播或组播。他们不是一回事。 – EJP
我总是倾向于寻求最简单的解决方案。如果您在C类子网上,我建议您简单地向同一子网上的所有其他253个主机发送单播。哎呀,即使是B班,为什么不呢?它只有大约65,000个目的地。 – wookie919
@ wookie919“为什么不”?因为路由器可能不会支持它? – EJP