最簡單的C#UDP通訊示例


參考:https://www.cnblogs.com/zxyc2000/articles/2846662.html  和  https://www.cnblogs.com/mq0036/p/7302605.html

UDP應用不是嚴格意義上的真正的服務器和客戶機,而是平等的關系,即沒有server與client的關系。

IPv4中的廣播(broadcast)可以導致網絡性能的下降甚至廣播風暴(broadcast storm)。在IPv6中就不存在廣播這一概念

1、打開vs2017新建控制台項目udpclient

 static void Main(string[] args)
        {            
            IPEndPoint udpPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4505);
            UdpClient udpClient = new UdpClient(udpPoint);
            //UdpClient udpClient = new UdpClient(); 匿名發送,自動分配本地IPv4地址udpcSend = new UdpClient(0); 
            string sendMsg = "Hello UDP Server.";
            byte[] sendData = Encoding.Default.GetBytes(sendMsg);
            IPEndPoint targetPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5500);
            udpClient.Send(sendData, sendData.Length, targetPoint);
            Console.WriteLine("Send Message:{0}", sendMsg);
            Console.Read();
        }
    }

2.在解決方案資源管理器中,解決方案上點右鍵-添加-新建項目,添加控制台應用udpserver

static void Main(string[] args)
        {
            IPEndPoint udpPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5500);
            UdpClient udpClient = new UdpClient(udpPoint);
            //IPEndPoint senderPoint = new IPEndPoint(IPAddress.Parse("14.55.36.2"), 0);
            IPEndPoint senderPoint = new IPEndPoint(IPAddress.Any, 0);
            byte[] recvData = udpClient.Receive(ref senderPoint);
            Console.WriteLine("Receive Message:{0}",Encoding.Default.GetString(recvData));
            Console.Read();
        }

3.添加引用,生成解決方案,先運行udpserver,再運行udpclient 。

4、大家可能注意到這個例子只能發送和接收一次,下一篇將介紹用TCP方式連續進行發送的例子。

 5、如果希望控制台程序不顯示窗口,可以創建好控制台程序后,選中項目,右鍵,屬性,輸出類型選為“windows 應用程序” 這樣就沒有dos窗口了(參考:https://blog.csdn.net/liyifei21/article/details/7948385)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM