[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
