標籤:style blog color 使用 os 資料 ar div
UdpClient 類提供了一些簡單的方法,用於在阻止同步模式下發送和接收無串連 UDP 資料報。 因為 UDP 是無串連傳輸協議,所以不需要在發送和接收資料前建立遠程主機串連。但您可以選擇使用下面兩種方法之一來建立預設遠程主機:
可以使用在 UdpClient 中提供的任何一種發送方法將資料發送到遠程裝置。 使用 Receive 方法可以從遠程主機接收資料。 UdpClient 方法還允許發送和接收多路廣播資料報。 使用 JoinMulticastGroup 方法可以將 UdpClient 預訂給多路廣播組。 使用 DropMulticastGroup 方法可以從多路廣播組中取消對 UdpClient 的預訂。 |
/// <summary>/// 用戶端/// </summary>class UDPSender{ static void Main(string[] args) { //建立一個UdpClient對象,0表示系統自動分配傳送埠 UdpClient udpSender = new UdpClient(0); //串連到服務端指定連接埠 udpSender.Connect("localhost", 11000); //把訊息轉換成位元組流發送到服務端 byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?"); udpSender.Send(sendBytes, sendBytes.Length); //關閉連結 udpSender.Close(); }}
/// <summary>/// 服務端/// </summary>class UDPReceive{ static void Main(string[] args) { //建立一個UdpClient對象,11000為接收埠 UdpClient udpReceive = new UdpClient(11000); //設定遠程主機,(IPAddress.Any, 0)代表接收所有IP所有連接埠發送的資料 IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);//或IPEndPoint remoteIpEndPoint = null; //監聽資料,接收到資料後,把資料轉換成字串並輸出 byte[] receiveBytes = udpReceive.Receive(ref remoteIpEndPoint); string returnData = Encoding.ASCII.GetString(receiveBytes); Console.WriteLine("This is the message you received " + returnData.ToString()); Console.WriteLine("This message was sent from " + remoteIpEndPoint.Address.ToString() + " on their port number " + remoteIpEndPoint.Port.ToString()); //關閉串連 udpReceive.Close(); }}
備忘:需要先運行服務端,再運行用戶端。否則用戶端在服務端運行之前就已經發出資料,則服務端不會接收到資料。