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

转载于:https://www.cnblogs.com/pu369/p/9984182.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值