C#高性能大容量SOCKET并发.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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# 度达到 (使用的是 的方式,相当于千兆网卡

文档评论(0)

nuvem + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档