1

我想检查 UDP 多播地址上的数据是否可用,我发现的唯一机制是Poll方法。

设置:

client = new UdpClient(localEp);
client.JoinMulticastGroup(multicastAddr, localIpAddress);
client.Connect(multicastAddr, receiveport);

轮询:

if (!client.Client.Poll(100, SelectMode.SelectRead))

客户端已连接(我检查过)但从不返回 true。
在wireshark 中,我可以看到正确发送了udp 数据报。

修复建议?

编辑:

IPEndpoint localEp = 本地 ipv4 单播地址,多播 udps 的端口 receiveport = 接收多播的端口 multicastaddr = IPAddress

4

1 回答 1

0

连接 UDP 套接字意味着在接收时将数据报的源地址和端口限制为指定的对,在发送时设置默认的目的地址和端口。

删除对 的调用Connect()

编辑0:

您需要绑定到多播地址,而不是本地 IP。从构造函数中删除localEp,或者用多播组/端口对替换它。请参阅MSDN上的示例

你错了,你只能Receive()一个数据报。

于 2012-12-11T13:16:26.053 回答