【发布时间】:2018-08-28 10:13:48
【问题描述】:
也许这个问题很奇怪。我不知道。 例如,在 Java 中获取多播数据包:
byte[] buf = new byte[1500];
MulticastSocket socket = new MulticastSocket(1234);
InetAddress group = InetAddress.getByName("233.0.0.1");
socket.joinGroup(group);
while (true) {
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
// doing something with packet
}
socket.leaveGroup(group);
socket.close();
但如果我知道多播组地址,它会很好地工作。如果我不知道怎么办? 我需要扫描网络并按端口查找所有可用的多播流。我不知道地址,但我知道端口。有可能吗?
假设我有 3 个地址为 233.0.0.1:1234、233.0.0.2:1234、233.0.0.3:1234 的流。我需要通过端口 1234 发现网络并找到此地址。如果不遍历循环中的所有多播地址并加入每个组,我该如何做到这一点?
【问题讨论】:
标签: java networking multicast discovery