[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