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

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

  • 相关阅读:
    Flutter中的剪裁
    flutter设置沉浸式状态栏
    flutter设置主题色和状态栏颜色
    Flutter更改状态栏颜色
    前端基础之JavaScript
    前端基础之CSS
    前端基础之初识 HTML
    socket及其相关(续篇)
    初识socket
    面向对象及其相关
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/13026580.html
Copyright © 2011-2022 走看看