zoukankan      html  css  js  c++  java
  • 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. 在服务器的窗口上会显示客户端的连接消息
  • 相关阅读:
    近期学习情况
    java连接数据库的两种方法总结
    近两个星期学习成果
    云笔记第一阶段总结
    圆面积
    C++计算器项目的初始部分
    C++视频课程
    A+B Format
    大一下学期的自我目标
    Kohana的请求流
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/10827669.html
Copyright © 2011-2022 走看看