我有一个小程序需要在同一 LAN 上的两台计算机之间进行通信。我对网络相当陌生,但从我读到的内容来看,我想要 UDP 多播,以便两台计算机可以相互发现,之后我可以建立 TCP 连接以进行实际数据通信。 I've found this little example for UDP multicasting我可以遵循。但是,我想知道多播组(HELLO_GROUP
在那个例子中,它是 225.0.0.37
)。
我怎么知道应该使用哪个组?这个程序将在各种网络上运行,所以我不能硬编码一个(据我所知)。我是否从路由器获取组,如果是,我该怎么做?
最佳答案
您可以选择任何不是 listed as reserved 的多播地址(224.0.0.0 到 239.255.255.255)由 IANA。
另一个程序有可能(如果不太可能)也使用相同的地址。您可以通过使您的程序发送的公告消息适当具体来最大程度地减少这种情况引起任何困惑的可能性。例如
CORNSTALKS-DISCOVERY
HOST: {address:port}
[newline]
这会通知您的收件人用于他们的 TCP 连接的地址,但应该会发现它的第一行被任何其他收件人拒绝。
关于c - UDP 多播 : how do I know which group to send to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13533333/