1

我需要在某个 IP 范围内的本地网络中查找设备。设备可以响应 Udp 数据报。我接下来做:

var udpSend = new UdpClient();
foreach (string ip in list)            
   udpSend.Send(new byte[] { 0xCE, 0x56, 0x01 },3, ip, 33333);

列表中有许多地址(10.0.1.1 - 10.0.255.255)。但并非所有设备都会收到我的消息。我尝试了另一种方式:

foreach (string ip in list)
        {
            var udpSend = new UdpClient();
            udpSend.Send(new byte[] {0xCE, 0x56, 0x01}, 3, ip, 33333); 
            udp.Close();
        }

但是在 255 个数据包之后 udp.Close(); 开始很慢。

我如何创建像 udp 扫描仪一样的东西?

4

1 回答 1

0

UDP 不提供有关消息传递的保证。事实上,并非每个数据包都已交付,您只需重试即可。关于多播/广播的评论是一个很好的评论;这样的事情通常是通过多播或广播来完成的。

于 2012-07-27T16:05:32.097 回答