zoukankan      html  css  js  c++  java
  • 网络编程之udpclient简单使用

    首先写个接受消息的服务端(接收方一般定义为服务端,发送方一般定义为客户端)。这里偷了点懒,new UdpClient(11000)就是用Udp方式侦听11000端口,侦听任何发送到11000端口的消息都会接收到。

                      static void Main(string[] args)
            {
                UdpClient udpClient = new UdpClient(11000);
                try
                {
                    while (true)
                       
                   {
                        IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                        Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);//字节数组(二进制),而不是流形式数据
                        string returnData = Encoding.ASCII.GetString(receiveBytes);
                        Console.WriteLine("This is the message you received " + returnData.ToString());
                        Console.WriteLine("This message was sent from " + RemoteIpEndPoint.Address.ToString() + " on their port number " + RemoteIpEndPoint.Port.ToString());
                     //   udpClient.Close();
                        Console.Read();
                    }
                }
                catch (Exception e)
                { Console.WriteLine(e.ToString()); }
            }

    然后写个发udp的客户端:

       static void Main(string[] args)
            {
                UdpClient udpClient = new UdpClient(11001);
                try
                {
                    udpClient.Connect(IPAddress.Parse("192.168.1.255"), 11000); //但是udp是无连接协议
                 //   udpClient.Connect("localhost", 11000);也可以使用这个连接方式
                    Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody thereA?");
                    udpClient.Send(sendBytes, sendBytes.Length); udpClient.Close();
                }
                catch  (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }

            }

    其中192.168.1.255是你的内网广播地址,也可以使用你的本机地址,11000是客户端的端口。

    广播地址是通过你的子网掩码获得的例如你的网关是192.168.0.1,掩码是255.255.255.0,那么你的广播地址就是192.168.0.255.

  • 相关阅读:
    php中的抽象方法和抽象类,简单明了,一点通
    PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
    如何使用php生成唯一ID的4种方法
    Redis案例——商品秒杀,购物车
    centos+python2+apache2+django环境搭建
    前端上传图片并显示
    通过容器提交镜像(docker commit)以及推送镜像(docker push)
    Name or service not known原因大全
    VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti
    win10家庭版VMware,禁用Device/Credential Guard不兼容问题
  • 原文地址:https://www.cnblogs.com/hedongnan/p/3141430.html
Copyright © 2011-2022 走看看