StriveEngine-UDP
文章中的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的更多相关文章
- 轻量级通信引擎StriveEngine —— C/S通信demo(附源码)
前段时间,有几个研究ESFramework的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关系.也不 ...
- 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)
在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...
- 轻量级C#网络通信组件StriveEngine —— C/S通信开源demo(附源码)
前段时间,有几个研究ESFramework网络通讯框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好 ...
- C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)
前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...
- Node.js:dgram模块实现UDP通信
1.什么是UDP? 这里简单介绍下,UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务.UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要.与TCP相 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- TODO:Golang语言TCP/UDP协议重用地址端口
TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...
- 利用Docker技术实现UDP广播效果(网络编程python版)
docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...
- 【Win 10 应用开发】UDP广播
我们知道,对于UDP协议的通信,除了可以用来聊天外,可以发送广播数据.只要向广播地址的某个端口发送数据就可以进行广播,子网中只要监听该端口的socket就能收到广播消息. 最简单的方法就是向255.2 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
随机推荐
- go语言字符串练习
package main import "fmt" import s"strings" var p = fmt.Println func main() { p( ...
- Spring 常见注解
@Component:标准一个普通的spring Bean类. @Controller:标注一个控制器组件类. @Service:标注一个业务逻辑组件类. @Repository:标注一个DAO组件类 ...
- 《C#从现象到本质》读书笔记(一)第1章 .NET基础知识
最近根据博客园大神的推荐,买了本<C#从现象到本质>.做一点读书笔记. 由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了.不知 ...
- IDEA导入MySQL包
点击[Project Structure] 点击[Modules] 在点击下面的界面 找到自己下载的MySQL包就OK了
- 格式化输出python
一.格式化输出 1.实例 name = input("Name:") age = input("Age:") job = input("Job:&qu ...
- fmt标签如何计算两个日期之间相隔的天数
<h2>start -- ${start}</h2><h2>end -- ${end}</h2><fmt:formatDate var=" ...
- linux 下安装安装mysql 5.6. 5.7
linux版本:CentOS7 64位 5.7.20 安装请看 他人博客 我已经安装成功了 https://www.cnblogs.com/cz-xjw/p/8006904.html 5.6安装 前提 ...
- vue的computed属性
vue的computed属性要注意的两个地方,1,必须有return,2,使用属性不用括号 <div> <input type="text" v-model=&q ...
- 使用promise判断是否登录
步骤: 1.创建并返回new Promise((success,error)=>{}),success和error分别是成功和失败后所执行的函数 2.判断是否含有cookie,如果含有cooki ...
- ant Design和ant Design mobile的使用,并实现按需加载
1.全局安装yarn npm install -g create-react-app yarn 2.创建react项目,并用yarn start 运行 3.引入antd/引入antd-mobile y ...