上海浦东做网站,德城区城乡建设局网站,广告投放方式,seo网络营销课程运营C#使用WebSocket进行网络链接#xff0c;和服务端搭建一个长连接进行通信。 有两种方式#xff1a;串口方式#xff08;SerialPort#xff09;和网口方式#xff08;Socket 包括#xff1a;TcpClient和UdpClient#xff09;
准备#xff1a;
1.C#使用WebSocket的一种…C#使用WebSocket进行网络链接和服务端搭建一个长连接进行通信。 有两种方式串口方式SerialPort和网口方式Socket 包括TcpClient和UdpClient
准备
1.C#使用WebSocket的一种方法是使用SerialProt类这个需要在Nuget包中添加System.IO.Ports然后引入 2.对于SerialPort的使用首先是声明实例化
serialPort.Open(); //打开串口
serialPort.Close();//应该是关闭目前没有试验过注对于串口端口一个端服务端或者客户端只能打开一次 解决
设置serialPort //一般需要的参数串口名称波特率校验位数据位停止位 名称看自己电脑一般COM数字 波特率可以查一下是否是必须要写的 校验位奇偶校验啥的 数据位数据 停止位到哪里停止或者说是用来控制接受到的数据需要保留多少
//还有读/写缓存区大小读写超时判断链接状态等参数
写操作
serialPort.Write(); //进行WebSocket通信的写操作两种方法
读操作
三个参数bety数组偏移字节接受长度count serialPort。BytesToRead是读取字节数
serisalPort.Read();进行类型转换成string
string msg Econding.ASCLL.GetString(respBytes);事件委托来进行读操作
在主函数中进行事件声明然后定义函数逻辑 这部分会有这个问题 这是因为在异步线程中处理了UI控件这里进行的事件通知建立了长连接就是在异步线程中进行的UI控件必须在主线程处理 这部分可以使用MVVM模式进行数据绑定这样在数据更新的时候不会触发异步线程导致的报错使用MVVM模式的数据绑定不会出现上述问题 上述问题的解决办法
Socket对象TcpClient和UdpClient
准备
Socket引用using System.Net.Sockets
链接 发送
发送的代码
接受
主动接受 一个汉字四个字节汉字使用UTF8编码。而且注意 这部分还是会报错因为UI线程需要在主线程中不能使用在异步线程中需要像下面一样
第二种方法