[Winform] 筆記一下,C#透過UDP 接收資料

2015-08-31

上一篇文章 [Winform] 筆記一下,C#透過UDP 傳送資料 傳送了資料,那如何接受透過UDP接受資料呢?
一樣這一篇是屬於C# Winform or Console 透過  System.Net 的做法,新的UWP 是不能用的,不過當你需要測試時候就很好用,範例是,一直不斷Port 1947 的所有訊息,並且Text Encoding  是 UTF8
首先先撰寫接收的程式,因為是一值不斷地在聽牌,所以是要寫while(true) 的作法


/// <summary>
  /// UDP Client
  /// </summary>
  UdpClient udpClient = new UdpClient(1947);
 
  /// <summary>
  /// UDP 一直接收Port 1947 的資料,收到後跳Messagebox
  /// </summary>
  private void ThreadRunMethod()
  {
 
      while (true)
      {
          var remoteIp = new IPEndPoint(IPAddress.Any, 0);
 
          var receivedBytes = udpClient.Receive(ref remoteIp);
 
          if (receivedBytes == null || receivedBytes.Length == 0)
              return;
          string strReceiveStr = Encoding.UTF8.GetString(receivedBytes);
          MessageBox.Show("收到資料囉: " + strReceiveStr);
      }
  }

我想呼叫後應該是直接hang 住吧,所以要用thread 來讓他跑


var udpReceiveUdpThread = new Thread(ThreadRunMethod);
udpReceiveUdpThread.Start();

這樣應該就可以了,這邊附上Source Code


當麻許的超技八 2014 | Donma Hsu Design.