- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/sqldebug_fan/article/details
C#高性能大容量SOCKET 并发(零):代码结构说明
C#版完成端口具有以下特点:
连接在线管理(提供在线连接维护,连接会话管理,数据接收,连接断开等相关事件跟踪);
发送数据智能合并(组件会根据资源使用情况,对多个同时发送向同一连接的多个消息数据进行合并写入缓冲
区;
内存池管理(提供一系列的接收和发送buffer 可复用池);
数据读写封装;
通讯协议封装;
由不同的类负责实现,比MSDN 的例子代码多了不少逻辑,为了方便大家阅读和理解,把整体类框架设计整体如下。
类结构图
类说明
1. AsyncSocketServer:服务入口,建立Socket 监听,负责接收连接,绑定连接对象,处理异步事件返回的
接收和发送事 件;m_asyncSocketUserTokenPool 是管理所有空闲的AsyncSocketUserToken,采用栈的管
理方式,后进先 出;m_asyncSocketUserTokenList 是管理所有正在执行的AsyncSocketUserToken,是一
个列 表;m_logOutputSocketProtocolMgr 是LogOutputSocketProtocol 的管理对 象;
m_uploadSocketProtocolMgr 是UploadSocketProtocol 的管理对象,用于检测是否同时上传同一个文 件;
m_downloadSocketProtocolMgr 是DownloadSocketProtocol 的管理对象;m_daemonThread 是守护进程,用
于关闭超时连接。
2. AsyncSocketUserToken:用于SocketAsyncEventArgs 绑定,保存 每个Socket 服务对象,包括:
m_receiveEventArgs 接收数据异步事件;m_asyncReceiveBuffer 接收数据异步事件使 用的缓存;
m_sendEventArgs 发送数据异步事件;m_receiveBuffer 接收异步事件返回的数据存放缓存,用于后续的分
包;m_sendBuffer 用于保存发送的数据缓存;m_asyncSocketInvokeElement 是用于协议调用的基类,主要
实现分包,并发 发送的包加到发送列表中,发送完成回调时继续发送下一个包;m_connectSocket 是连接
的Socket 对象。
3. AsyncSocketInvokeElement: 用于协议调用的基类,主要实现分包,并发发送的包加到发送列表中,发送
完成回调时继续发送下一个包,包括:m_incomingDataParser 用于 分析接收到的数据包,把协议解析出命
令、关键字、数据,并存储到列表中;m_outgoingDataAssembler 用于组装需要发送的数据,把命 令、关
键字、数据组成符合协议格式的数据,并存储在列表中。
4. BaseSocketProtocol 是所有协议的基类,把一些公共的方法 放在这里,后续的ControlSocketProtocol、
DownloadSocketProtocol LogOutputSocketProtocol RemoteStreamSocketProtocol
、 、 、
ThroughputSocketProtocol、UploadSocketProtocol 都从这里继承。
/sqldebug_fan/article/details
C#高性能大容量SOCKET 并发(一):IOCP 完成端口例子介绍
例子主要包括SocketAsyncEventArgs 通讯封装、服务端实现日志查看、SCOKET 列表、上传、下载、远程文件流、
吞吐量协议,用 于测试SocketAsyncEventArgs 的性能和压力,最大连接数支持65535 个长连接,最高命令交互速
250MB/S 1Gb=125MB/S 。 C#
度达到 (使用的是 的方式,相当于千兆网卡
您可能关注的文档
最近下载
- SY_T 7494-2020 油气田用起泡剂实验评价方法.pdf VIP
- 人机工程学函授真题201307.doc VIP
- 人机工程学复习题人机工程学复习题.doc VIP
- 海信模块机-Hi-Mod模块化空气源热泵(冷水)机组低温强热系列.pdf VIP
- 猪大肠杆菌病病原学研究进展.docx VIP
- WABO CRETE Ⅱ弹性混凝土在桥面铺装层维修中的应用.pdf VIP
- BS EN 12516-2-2014 工业用阀门 外壳设计强度 第2部分:钢制阀壳的计算方法(中文版).pdf
- 人机工程学应用 自考课程大纲.pdf VIP
- 前台接待流程.pptx VIP
- 综合医院中医药工作专项推进行动方案.pdf VIP
文档评论(0)