【问题标题】:UdpClient can't send many packets to different address?UdpClient 不能将许多数据包发送到不同的地址?
【发布时间】:2012-07-26 07:25:49
【问题描述】:

我需要在某个 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 的扫描仪?

【问题讨论】:

  • 多播或广播您的 udp 数据报可能更有效。您可能还应该发送超过 1 个以确保收到它们。

标签: c# ip udpclient


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多