C#网络编程学习(2)---Socket之Udp协议的简单使用

使用Udp协议实现最简单的服务器与客户端通信

1、服务器端

        public static Socket udpServer;
        static void Main(string[] args)
        {
            //1. 创建socket
            udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            //2. 绑定ip和端口号
            udpServer.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.2"), 6666));

            //3. 接收数据
            //因为要一直接收所以单独设置一个线程。
            //当程序结束时,不再接收,所以设置为后台线程
            new Thread(ReceiveMessage) {IsBackground = true}.Start();

            Console.ReadKey();
        }

        static void ReceiveMessage()
        {
            //3. 接收数据
            while (true)
            {
                EndPoint point = new IPEndPoint(IPAddress.Any, 0); //ip和端口号都不需要赋值
                byte[] data = new byte[1024];
                int length = udpServer.ReceiveFrom(data, ref point); //这个方法会把数据的来源(ip,端口号),放在第二个参数上

                string message = Encoding.UTF8.GetString(data, 0, length);
                Console.WriteLine("从ip:" + (point as IPEndPoint).Address.ToString() + "端口号:" +
                                  (point as IPEndPoint).Port.ToString() + "收到了数据:" + message);
            }

        }

2、客户端

        static void Main(string[] args)
        {
            //1.创建socket
            Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);


            //3.向服务器发送消息
            EndPoint point = new IPEndPoint(IPAddress.Parse("192.168.1.2"), 6666);
            byte[] data = Encoding.UTF8.GetBytes("Hello I am Ffly");
            udpClient.SendTo(data, point);

            Console.ReadKey();
        }

3、效果

  1. 先运行服务器窗口
  2. 再运行客户端窗口
  3. 在服务器的窗口上会显示客户端的连接消息

转载于:https://www.cnblogs.com/Fflyqaq/p/10827669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值