zoukankan      html  css  js  c++  java
  • UdpClient实现udp消息收发

    跟tcpclient类似。

    不同之处:1、udp没有稳定通道,所有内容需要用字节形式收发。2、udpclient的connect方法,仅指定默认的发送目的地,并没有连接动作。

    最简的代码如下:

    被连接端:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Net.Sockets;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                UdpClient udp = new UdpClient(9000);
                string msg;
                IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Any, 0);
                do
                {
                    msg = Encoding.Unicode.GetString(udp.Receive(ref iPEndPoint));
                    Console.WriteLine($"{iPEndPoint}:{msg}");
                } while (msg.ToLower()!="exit");
                Console.ReadKey();
            }
        }
    }

    连接端:

    static void Main(string[] args)
            {
                //可以使用不同的构造方法指定本地ip端口。
                UdpClient udp = new UdpClient();
                string msg;
                byte[] b_msg;
                udp.Connect(IPAddress.Parse("127.0.0.1"), 9000);
                do
                {
                    msg = Console.ReadLine();
                    b_msg = Encoding.Unicode.GetBytes(msg);
                    udp.Send(b_msg, b_msg.Length);
                } while (msg.ToLower()!="exit");
                Console.ReadKey();
            }

    运行结果:

     可以以此为蓝本,仿照tcpclient的方式,完成双向通讯和聊天室程序。

    经实测,目标ip地址更换为广播地址

    IPAddress.Broadcast

    后,即可实现广播消息发送。

  • 相关阅读:
    算法技巧之打表
    Python_爬虫_爬取网络图片信息01
    python_爬虫_爬取京东商品信息
    Python——turtle库学习
    Python学习笔记——函数
    131219流水账
    121219流水账
    081219~111219流水账
    071219流水账
    061219流水账
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/13026580.html
Copyright © 2011-2022 走看看