我有一个应用程序(用C/C++编写),它通过UDP在局域网内的许多Windows和Linux主机之间进行通信(通过winsock / Linux-Sockets)。我只使用一个端口,因此每个主机上只有一个套接字。有些消息是Broadcastet的,回复通常是单播的,但有些也是广播的。到目前为止,一切都在运行,但是:
我如何才能知道我收到的包(通过recvfrom)是广播还是单播?
我找到的唯一解决方案是在Payload内发送此信息,或者使用不同的端口。两者都不是很好。
发布于 2012-05-20 02:14:41
在Linux端,您可以使用setsockopt(2)设置UDP ip(7)套接字选项,然后使用recvmsg(2)获取PKT_INFO数据包的目的地址。
https://stackoverflow.com/questions/10667647
复制相似问题