我如何收到组播数据包?

时间:2014-05-28 04:30:41

标签: c++ multicast

我正在尝试从媒体服务器接收多播数据包。这是示例数据包的wireshark捕获:

Multicast Example http://memecode.com/images/general/multicast-packet.png

似乎没有涉及任何端口,只有源和目标的MAC地址。我见过的大多数源代码示例在接收多播数据包时绑定到特定端口。例如 https://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzab6%2Frzab6x2multicast.htm

我希望能够在Windows和MaxOSX上接收这些数据包(在这两种情况下都是C ++应用程序,即Win32 API和Carbon,尽管Mac端口更重要)。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您只需创建UDP套接字,将其绑定到端口,加入多播组,然后呼叫recvfrom()

但是您捕获的数据包看起来不像UDP多播数据包。可能是路由器之间的东西?它没有IP头,更不用说UDP头了,这是IP和端口信息的地方,