文章中的StriveEngine.dll版本为V3.9.0.0,源码下载请到 这里
UDP比TCP通信,就相对简单多了
先上代码,建立2个控制台程序,分别为SEUDP1,SEUDP2,其中SEUDP1中增加一个类

 class UDP
    {
        private IUdpEngine udpServerEngine;
        public UDP(int port)
        {
            this.udpServerEngine = NetworkEngineFactory.CreateUdpEngine();
            this.udpServerEngine.Port = port;

           this.udpServerEngine.LogFilePath = @"C:\";
            this.udpServerEngine.MessageReceived += udpServerEngine_MessageReceived;
        }

        private void udpServerEngine_MessageReceived(IPEndPoint obj1, byte[] obj2)
        {
            string msg = System.Text.Encoding.UTF8.GetString(obj2);
            Console.WriteLine("Get message from [{0}]:{1}", obj1.ToString(), msg);
        }

        public void Start()
        {
            this.udpServerEngine.Initialize();
        }

        public void Send(string ip, int port, byte[] msg)
        {
            IPEndPoint iep = new IPEndPoint(IPAddress.Parse(ip), port);
           this. udpServerEngine.SendMessage(iep, msg);
        }

        public void Send(string ip, int port, string msg)
        {
            byte[] bs = System.Text.Encoding.UTF8.GetBytes(msg);
            this.Send(ip, port, bs);
        }
    }

同时,在SEUPD2中增加这个类的链接,然后就都可以使用了

SEUPD1中的Main函数

 static void Main(string[] args)
        {
            UDP sender = );
            sender.Start();
            while (true)
            {
                string msg = Console.ReadLine();
                sender.Send(, msg);
            }

        }

SEUPD2中的Main函数

 static void Main(string[] args)
        {
            UDP sender = );
            sender.Start();
            while (true)
            {
                string msg = Console.ReadLine();
                sender.Send(, msg);
            }
        }

启动SEUPD1和SEUDP2,在控制台敲任意字符,都能发送到对方,并且打印出来.

注意:

  • UDP是没有客户端和服务端之分的,这一点和tcp的区别最明显
  • 对报文没有那么多控制,(我说的控制,不是因为我没定义报文类,)
  • 非面向连接,发送就完成,不管身后事

StriveEngine-UDP的更多相关文章

  1. 轻量级通信引擎StriveEngine —— C/S通信demo(附源码)

    前段时间,有几个研究ESFramework的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关系.也不 ...

  2. 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)

    在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...

  3. 轻量级C#网络通信组件StriveEngine —— C/S通信开源demo(附源码)

    前段时间,有几个研究ESFramework网络通讯框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好 ...

  4. C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)

    前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...

  5. Node.js:dgram模块实现UDP通信

    1.什么是UDP? 这里简单介绍下,UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务.UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要.与TCP相 ...

  6. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  7. TODO:Golang语言TCP/UDP协议重用地址端口

    TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...

  8. 利用Docker技术实现UDP广播效果(网络编程python版)

    docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...

  9. 【Win 10 应用开发】UDP广播

    我们知道,对于UDP协议的通信,除了可以用来聊天外,可以发送广播数据.只要向广播地址的某个端口发送数据就可以进行广播,子网中只要监听该端口的socket就能收到广播消息. 最简单的方法就是向255.2 ...

  10. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

随机推荐

  1. Visual code 搭建Vue项目

    使用VS Code搭建Vue项目 1.安装 VScode 2..安装最新node.JS 2.安装cnpm镜像  淘宝镜像(node自带安装了npm,故不再安装) npm install -g cnpm ...

  2. springmvc相关

    Springmvc的请求注解可分为四类: url请求地址(PathVariable). head请求头(RequestHeader.CookieValue). body请求体(RequestParam ...

  3. tolua杂记

    1 字符串调用luaFunc  :DoString public class CallLuaFunction : MonoBehaviour { private string script = @&q ...

  4. linux 查看信息-服务器相关

    查看系统内核 查看磁盘信息 查看CPU的信息 查看内存相关信息

  5. js之function

    function* function* 这种声明方式(function关键字后跟一个星号)会定义一个生成器函数 (generator function),它返回一个  Generator  对象. 你 ...

  6. javascript对象的属性,方法,prototype作用范围分析.

    用了javascript这么久由于没有系统学习过基础,总是拿来主义. 所以对一些基础知识还是搞不清楚很混乱. 今天自己做个小例子,希望彻底能搞清楚. 注释中对象只例子的对象本身,原型只原型继承对象的新 ...

  7. Socket 学习笔记 01 常用函数

    常用方法 创建套接字: socket()    绑定本机端口: bind()    建立连接: connect(),accept()    侦听端口: listen()    数据传输: send() ...

  8. canvas 实现时钟效果

    var clock = document.getElementById('clock'); var cxt = clock.getContext('2d'); function drawClock() ...

  9. php 超时设置笔记

    php.ini default_socket_timeout=5 mysql.connect_timeout = 5 max_execution_time = 5 php-fpm pm = dynam ...

  10. 注解Demo

    1.创建注解类 2.在测试实体类中使用注解 3.构建注解解析类 4.执行注解解析方法