我想检查数据是否可用于UDP多播地址,我找到的唯一机制是 Poll
方法 .
Build :
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
1 回答
连接UDP套接字是指在接收时将数据报源地址和端口限制为指定对,并在发送时设置默认目标地址和端口 .
删除对Connect()的调用 .
编辑0:
您需要绑定到多播地址,而不是本地IP . 从构造函数中删除
localEp
,或者将其替换为多播组/端口对 . 请参阅MSDN上的examples .你错了,你只能一个数据报 .