如何UDP广播和单播的区别?(How to differentiate between UDP Br

2019-09-17 08:55发布

我有一个应用程序(用C / C ++),这就是(通过Winsock的/ Linux的套接字)的本地网络内许多Windows和Linux主机之间的通信通过UDP。 我只使用一个端口,因此只有一个插座每个主机上。 有些消息是Broadcastet,答复往往是单播,但有些过于广播。 寄托都在工作,但迄今为止:

我如何才能找到我收到(通过recvfrom的)一个一揽子贷款项目是否是一个广播或单播?

我发现的唯一的解决办法是发送有效载荷这里面的信息,或者使用不同的端口。 两者都不是很不错的...

Answer 1:

在Linux方面,你可以设置PKT_INFO ip(7)与socket选项setsockopt(2)然后用recvmsg(2)获得的UDP数据包的目的地址。



文章来源: How to differentiate between UDP Broadcasts and Unicasts?