当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/225158.html

相关文章:

  • 自动化实战 - 测试个人博客系统
  • TCP/IP详解
  • 2023年的低代码:数字化、人工智能、趋势及未来展望
  • 【gogogo专栏】golang并发编程
  • 深入理解JVM虚拟机第二十二篇:详解JVM当中与操作数栈相关的字节码指令
  • Vue报错解决Error in v-on handler: “Error: 无效的节点选择器:#div1“
  • R | R包安装报错-github连接速度慢或无法访问 | metaboanalystR | Retip | rJava安装
  • 博阳精讯、凡得科技访问上海斯歌:共探BPM流程服务新高地
  • 响应式艺术作品展示前端html网站模板源码
  • 大语言模型(LLM)综述(六):大型语言模型的基准和评估
  • 【Python自学笔记】Flask调教方法Internel Server Error
  • 【AICFD案例教程】汽车外气动-AI加速
  • P1547 [USACO05MAR] Out of Hay S 题解
  • 2023.11.10联测总结
  • C++:list?自己模拟实现!
  • layui table合并相同的列
  • 【Spring】SpringBoot配置文件
  • python批量下载txt文件中链接的数据
  • stm32 Bootloader设计(YModem协议)
  • 竞赛 题目: 基于深度学习的疲劳驾驶检测 深度学习
  • ubuntu 16.04.5 安装 vivado 2019.1 完整编译AD9361的环境
  • Zotero详细功能补充!熟练使用!【进阶版,持续更新】
  • 【Windows】Windows系统常用命令大全
  • 大语言模型研究进展综述
  • linux gdb 调试 常见调试命令介绍+总结
  • 基于JavaWeb+SSM+Vue微信小程序校园兼职任务平台系统的设计和实现
  • 我的MQTT操作类(M2Mqtt.Net)
  • node插件MongoDB(四)—— 库mongoose 的个性话读取(字段筛选、数据排序、数据截取)(四)
  • AI:73-结合语法知识的神经机器翻译研究
  • [LeetCode]-225. 用队列实现栈