侦听UDP组播数据包

时间:2017-01-07 07:35:01

标签: windows udp autoit multicast ssdp

我的AutoIt脚本应该接收发送到239.255.250.250:9131的UDP多播数据包。但它不起作用,我认为没有为UDP multicast address指定UDPBind()的选项。

以下代码中的

UDPBind()会返回error 10049 (invalid address)

UDPStartup()
UDPBind("239.255.250.250", 9131)
While 1
   $msg = UDPRecv($recv, 512)
   If $msg <> "" Then
      ConsoleWrite($msg)
   EndIf
   Sleep(100)
WEnd

如何监听UDP组播数据包?

1 个答案:

答案 0 :(得分:1)

您不得绑定到多播地址。 Bind是本地操作,用于设置侦听界面(在Windows上)和端口。

要接收多播,您需要:

  • 绑定到要在其上接收mutlicast的接口和端口的IP地址。在Windows上,绑定到所选接口上的IP地址。在Linux上,绑定到0.0.0.0。

  • 使用适当的机制加入多播组。