首先是发送端:

/// <summary>
/// 发送UDP消息
/// </summary>
/// <param name="msg">消息内容</param>
void Send(string msg)
{
    UdpClient udpClient = new UdpClient();
    IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Broadcast, 10249);

    byte[] buffer = Encoding.UTF8.GetBytes(msg);
    udpClient.Send(buffer, buffer.Length, ipEndPoint);
}

 

然后是接收端:

static void Main()
{
    UdpClient udpServer = new UdpClient(10249);
    IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 10249);

    udpServer.BeginReceive(Received, udpServer);
}

/// <summary>
/// 异步接收UDP数据
/// </summary>
/// <param name="iar"></param>
void Received(IAsyncResult iar)
{
  udpServer = iar.AsyncState as UdpClient;
  byte[] buffer = udpServer.EndReceive(iar, ref ipEndPoint);

  //将获取的byte[]数据转换成字符串
  string m = Encoding.UTF8.GetString(buffer).Trim();

  Console.WriteLine("Receive:{0}",m);

  //继续异步接收数据
  udpServer.BeginReceive(Received, udpServer);
}

接收端采用了异步执行的方式,当然也可以用Thread来做!

相关文章:

  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
  • 2021-10-01
  • 2021-07-17
猜你喜欢
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-09-18
  • 2021-08-23
  • 2022-12-23
相关资源
相似解决方案