摘要
在一些项目中,可能会用到串口(COM)通信,也可能会使用TCP-Server,TCP-Client,UDP等等,这种实现起来都大差不差,所以我封装了一个无任何依赖小而美的通信框架,通用性强,安全稳定,动态库仅16KB。目前支持UPD/COM/TCP-Server/TCP-Client,UDP支持收发分离,连接状态回调等等。
组件安装
Package命令行安装:
Install-Package BaseConnect -Version 1.0.0
可视化包管理工具:
Nuget搜索BaseConnect
组件使用
小提示
Tips:因都继承自BaseConnect
这个基类,所以无论我们需要创建哪种通信,都可以使用BaseConnect
作为声明类型。
使用该类库创建一个通信仅有4步:new出一个对象(如TcpClient)传入构造参数--->注册数据接收回调--->注册连接状态变更回调--->打开连接
下面以Tcp-Client为例,简单说明一下使用方式
使用
1、为实例创建一个声明
private BaseConnect _connect = new NullConnect();
2、创建TcpClient实例,注册数据接收、连接状态回调事件,打开连接
//创建Tcp-Client
_connect = new TcpClientConnect(serverIp,serverPort);
_connect.ReceivedBytes += OnReceivedBytes;
_connect.ConnectStatusChanged += OnConnectStatusChanged;
_connect.OpenConnect();
//数据回调事件
private void OnReceivedBytes(string sender, byte[] data)
{
//数据处理...
}
private void OnConnectStatusChanged(bool connected)
{
//True:连接 False:断开
}
3、关闭连接,注销回调事件
if (_connect != null)
{
_connect.CloseConnect();
_connect.ReceivedBytes -= OnReceivedBytes;
_connect.ConnectStatusChanged -= OnConnectStatusChanged;
}
搞定!就只需这么几步就能实现,COM以及UDP等等同理。唯一有变化的就是不同的通信在创建实例时传入的构造参数不一样。
实例构造参数说明
COM
参数 | 类型 | 是否必填 | 举例 |
---|---|---|---|
comPortName(串口号) | string | 必填 | COM1 |
comBaudRate(波特率) | int | 必填 | 115200 |
comParity(校验位) | Parity | 选填(默认为Parity.None) | Parity.Odd |
UDP
参数 | 类型 | 是否必填 | 举例 |
---|---|---|---|
remoteIp(远端IP) | string | 必填 | 127.0.0.1 |
remotePort(远端端口) | int | 必填 | 9000 |
localPort(本机端口) | int | 选填(默认为0) | 9005 |
TCP-Client
参数 | 类型 | 是否必填 | 举例 |
---|---|---|---|
remoteIp(远端IP) | string | 必填 | 127.0.0.1 |
remotePort(远端端口) | int | 必填 | 9000 |
localPort(本机端口) | int | 选填(默认为0) | 9005 |
TCP-Server
参数 | 类型 | 是否必填 | 举例 |
---|---|---|---|
localPort(本机端口) | int | 必填 | 8888 |
效果演示
以下为使用该库所实现的通信模块,右侧为NetAssist
工具模拟通信
源代码
已将源代码编译发布至Nuget包管理平台,可直接在项目中安装使用,如需进行定制化修改,可联系本人获取完整源代码。
如有不懂或更好的方式请在留言区留下评论!!
标签:UDP,必填,16K,int,TCP,connect,COM From: https://www.cnblogs.com/chonglu/p/16907536.html