SuperSocket学习进展.docx

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SuperSocket学习进展

SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。SuperSocket具有如下特点:简单易用,只需要几个类就能创建出健壮的Socket服务器端程序性能优良, 稳定可靠支持各种协议, 内置的协议解析工具让你把实现通信协议这种复杂的工作变得很简单自动支持SSL/TLS传输层加密强大,灵活而且可扩展的配置让你开发Socket服务器省时省力支持多个socket服务器实例运行, 而且支持多个服务器实例的隔离SuperSocket能以控制台或者Windows服务形式运行。一个脚本就能将SuperSocket安装成服务灵活的日志策略能够记录大部分socket活动支持UDP支持IPv6支持Windows Azure支持Linux/Unix操作系统(通过Mono 2.10或以上版本)内置可直接使用的Flash/Silverlight Socket策略服务器AppSession 代表一个和客户端的逻辑连接,基于连接的操作应该定于在该类之中。你可以用该类的实例发送数据到客户端,接收客户端发送的数据或者关闭连接。AppServer 代表了监听客户端连接,承载TCP连接的服务器实例。理想情况下,我们可以通过AppServer实例获取任何你想要的客户端连接,服务器级别的操作和逻辑应该定义在此类之中。实现你自己的AppSession和AppServer允许你根据你业务的需求来方便的扩展SuperSocket,你可以绑定session的连接和断开事件,服务器实例的启动和停止事件。你还可以在AppServer的Setup方法中读取你的自定义配置信息。总而言之,这些功能让你方便的创建一个你所需要的socket服务器成为可能。通过配置启动:避免硬编码SuperSocket提供了很多有用的配置选项可以充分利用SuperSocket提供的工具内置的命令行协议内置的命令行协议(接受自定义,分隔符为“:”,“,”):命令行协议定义了每个请求必须以回车换行结尾 \r\n。由于 SuperSocket 中内置的命令行协议用空格来分割请求的Key和参,因此当客户端发送如下数据到服务器端时:LOGIN kerry 123456 + NewLineSuperSocket 服务器将会收到一个 StringRequestInfo 实例,这个实例的属性为:Key: LOGINBody: kerry 123456;Parameters: [kerry, 123456]SuperSocket 提供了一些通用的协议解析工具, 你可以用他们简单而且快速的实现你自己的通信协议TerminatorReceiveFilterFactory:一个协议使用两个字符 ## 作为结束符“CountSpliterReceiveFilter”:有些协议定义了像这样格式的请求 #part1#part2#part3#part4#part5#part6#part7#. 每个请求有7个由 # 分隔的部分. 这种协议的实现非常简单:“FixedSizeReceiveFilter”:在这种协议之中, 所有请求的大小都是相同的。如果你的每个请求都是有9个字符组成的字符串,如KILL BILL, 你应该做的事就是想如下代码这样实现一个接收过滤器(ReceiveFilter):“BeginEndMarkReceiveFilter”:在这类协议的每个请求之中 都有固定的开始和结束标记。例如, 我有个协议,它的所有消息都遵循这种格式 !xxxxxxxxxxxxxx$。因此,在这种情况下, ! 是开始标记, $ 是结束标记,于是你的接受过滤器可以定义成这样:“FixedHeaderReceiveFilter”:这种协议将一个请求定义为两大部分, 第一部分定义了包含第二部分长度等等基础信息. 我们通常称第一部分为头部.例如, 我们有一个这样的协议: 头部包含 6 个字节, 前 4 个字节用于存储请求的名字, 后两个字节用于代表请求体的长度:你需要基于类FixedHeaderReceiveFilter实现你自己的接收过滤器.然后你就可以使用接收或者自己定义的接收过滤器工厂来在 SuperSocket 中启用该协议.在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法。这

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档