我正在尝试为无线网格创建一个程序(adhoc除了名称之外)。大多数网络将处理TCP消息传递,但要确定所有邻居IP(因为它们在启动时将是未知的),我选择使用UDP广播作为初始发现消息。
我目前有两个问题。首先,UDP广播仅由发送方接收,而不是其邻居;第二,由于接收套接字不能接受发送者套接字(由于消息是数据报),我无法恢复IP地址。
我需要一种能让它发挥作用的方法。
答案 0 :(得分:3)
你应该通过例如数据报获取源地址和数据报。 recvfrom。 Here's the .NET version.您还必须set a socket option发送广播数据报。
答案 1 :(得分:0)
为什么选择UDP以及为什么不说,ICMP Ping到广播地址,甚至用ICMP ping来强行进入网络块?在我看来,ping更适合于确定特定主机是否“活着”,不是吗?