最简单的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