C#UDP广播和接收示例

Jas*_*son 10 c# udp

问题:我试图在特定地址绑定一个udp套接字.我会播出一条消息.同一个套接字需要能够接收消息.

当前代码:

static void Main()
{
    UdpClient Configuration = new UdpClient(new IPEndPoint(IPAddress.Parse(data.IPAddress), configuration.Port));  //set up the bind to the local IP address of my choosing
    ConfigurationServer.EnableBroadcast = true;
    Configuration.Connect(new IPEndpoint(IPAddress.Parse(data.BroadcastIP), configuration.Port);
    Listen();

 }

private void Listen()
{
    Task.Run(async () =>
            {
                while (true)
                {
                    var remoteIp = new IPEndPoint(IPAddress.Any, configuration.Port);
                    var data = await ConfigurationServer.ReceiveAsync();

                    // i would send based on what data i received here
                    int j = 32;
                }
            }
});
}   
Run Code Online (Sandbox Code Playgroud)

我没有收到有关侦听线程的数据.我知道另一方的代码是有用的,并且向IP /端口组合发送定向UDP消息.

L.B*_*L.B 16

它可以简单地完成

int PORT = 9876;
UdpClient udpClient = new UdpClient();
udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, PORT));

var from = new IPEndPoint(0, 0);
Task.Run(() =>
{
    while (true)
    {
        var recvBuffer = udpClient.Receive(ref from);
        Console.WriteLine(Encoding.UTF8.GetString(recvBuffer));
    }
});

var data = Encoding.UTF8.GetBytes("ABCD");
udpClient.Send(data, data.Length, "255.255.255.255", PORT);
Run Code Online (Sandbox Code Playgroud)

  • @Kiquenet它是网络上的广播地址。发送到广播地址的消息将被发送到网络上的所有设备。https://en.wikipedia.org/wiki/Broadcast_address (2认同)