首页 文章

Udpclient轮询UDP多播地址

提问于
浏览
1

我想检查数据是否可用于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 回答

  • 0

    连接UDP套接字是指在接收时将数据报源地址和端口限制为指定对,并在发送时设置默认目标地址和端口 .

    删除对Connect()的调用 .

    编辑0:

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

    你错了,你只能一个数据报 .

相关问题