内置的命令行协议(接受自定义,分隔符为“:”,“,”):

命令行协议定义了每个请求必须以回车换行结尾 "\r\n"。

由于 SuperSocket 中内置的命令行协议用空格来分割请求的Key和参,因此当客户端发送如下数据到服务器端时:

"LOGIN kerry 123456" + NewLine

SuperSocket 服务器将会收到一个 StringRequestInfo 实例,这个实例的属性为:

Key: "LOGIN"

Body: "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中的反射还可以运态创建出对象并执行它

最新文章

  1. redis主从配置
  2. C++静态库和动态库的区别
  3. 来自 Codrops 的7种创新的拖放交互界面
  4. Bootstrap系列 -- 4. 文本内容强调
  5. BZOJ4527: K-D-Sequence 线段树
  6. redis和ssdb读取性能对比
  7. [ZZ]计算机视觉、机器学习相关领域论文和源代码大集合
  8. 添加无线服务wzcsvc服务,Eventlog服务
  9. Appnium移动自动化框架初探
  10. 01-08-05【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate二级缓存:第三方MemCache缓存
  11. Yii2的相关学习记录,下载Yii2(一)
  12. IT定理:摩尔定理,安迪-比尔定理,反摩尔定理
  13. Tomcat集群+Nginx+Redis服务搭建
  14. caioj 1236 最近公共祖先 树倍增算法模版 倍增
  15. 制药企业BI系统方案整体设计分享
  16. django优化和扩展(一)
  17. spring-security doc logout
  18. 程序员50题(JS版本)(八)
  19. react入门学习及总结
  20. go关键字之struct定义声明方式

热门文章

  1. python 随机模块random
  2. php分页查询的简单实现代码
  3. TSQL:让监控分析更简单更高效
  4. LUOGU P1081 开车旅行 (noip 2012)
  5. hdu 3068 最长回文(manacher入门)
  6. 常用css3属性
  7. 数据挖掘python,java
  8. python的数据类型和变量
  9. jquery鼠标悬停突出显示
  10. js多图上传展示和删除