C# WebSocket 服务器

*******************websocket服务器**************************************

第一步:创建HttpListener类,并启动监听:

var listener = new HttpListener();

listener.Prefixes.Add("http://10.10.13.140:8080/");

listener.Start();

第二步:等待连接

var context = listener.GetContext();

第三步:接收websocket

var wsContext = await context.AcceptWebSocketAsync(null);

var ws = wsContext.WebSocket;

Console.WriteLine("WebSocket connect");

第四步:开始异步接收数据

//接收数据

var wsdata = await ws.ReceiveAsync(abuf, cancel);

Console.WriteLine(wsdata.Count);

byte[] bRec = new byte[wsdata.Count];

Array.Copy(buf, bRec, wsdata.Count);

Console.WriteLine(Encoding.Default.GetString(bRec));

第五步:释放资源

//注意,使用完,记得释放,不然会有内存泄漏

ws.Dispose();

*******************websocket客户端****************************************

这里使用ClientWebSocket类进行

第一步:创建ClientWebSocket

ClientWebSocket webSocket = new ClientWebSocket();

第二步:建立websocket连接

await webSocket.ConnectAsync(new Uri("ws://10.10.13.140:8080/"), cancellation);

Console.WriteLine(111);

第三步:发送数据

//发送数据

await webSocket.SendAsync(new ArraySegment<byte>(bsend), WebSocketMessageType.Binary, true, cancellation);

await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "1", cancellation);

第四步:释放资源

//释放资源

webSocket.Dispose();


版权声明:本文为CSDN博主「g0415shenw」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/g0415shenw/article/details/80365554

相关推荐
程序设计实验室5 小时前
C# 扩展方法只会写 this 吗?C# 14 新语法直接把扩展方法玩出了花
c#
唐青枫8 小时前
C#.NET SignalR 深入解析:实时通信、Hub 与连接管理实战
c#·.net
唐宋元明清218814 小时前
.NET Win32磁盘动态卷/跨区卷触发“函数不正确”问题排查
windows·c#·存储
hez201014 小时前
Satori GC:同时做到高吞吐、低延时和低内存占用
c#·.net·.net core·gc·clr
唐青枫1 天前
C#.NET Channel 深入解析:高性能异步生产者消费者模型实战
c#·.net
小峥降临2 天前
Rokid UXR 的手势追踪虚拟中更真实的手实战开发【含 工程源码 和 最终完成APK】
c#
晨星shine6 天前
GC、Dispose、Unmanaged Resource 和 Managed Resource
后端·c#
用户298698530146 天前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
用户3667462526746 天前
接口文档汇总 - 2.设备状态管理
c#
用户3667462526746 天前
接口文档汇总 - 3.PLC通信管理
c#