繁体   English   中英

如何将数据发送到多个特定IP

[英]How do I send data to multiple specific IP's

我正在编写一个C#程序,该程序需要将相同的数据发送到多个特定的收件人。 我不能使用多播,因为它会将数据发送给在多播地址上侦听的每个人。

我当前的解决方案是仅遍历收件人并将数据分别发送给每个收件人,但是我正在寻找效率更高的东西。

这是我当前的解决方案:

    public void SendToMultiple(IPAddress[] Recipients, byte[] Data)
    {
        UdpClient Client = new UdpClient();
        foreach(IPAddress Recipient in Recipients)
        {
            Client.Send(Data, Data.Length, new IPEndPoint(Recipient, PORT));
        }
        Client.Close();
    }

就我所知,您可以使用单播,多播或广播。 由于您只对发送给特定的一组客户感兴趣,因此我只能推荐单播,因为其他两个将发送给也在侦听的那些。

我唯一想提高效率的就是将代码放在Parallel.Foreach循环中,然后在其中创建UdpClient,然后将数据发送出去?

public void SendToMultiple(IPAddress[] Recipients, byte[] Data)
{
    Parallel.ForEach(Recipients,
        Recipient =>
        {
            UdpClient Client = new UdpClient();
            Client.Send(Data, Data.Length, new IPEndPoint(Recipient, PORT));
            Client.Close();
        });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM