SuperSocket.ClientEngine介绍
项目地址:https://github.com/kerryjiang/SuperSocket.ClientEngine
其中需要引入的SuperSocket.ProtoBase项目:SuperSocket.ProtoBase是流数据的一个协议分析库。
地址:https://github.com/kerryjiang/SuperSocket.ProtoBase
用法:
1、根据你的网络协议创建ReceiveFilter的实现。
SuperSocket.ClientEngine提供了一些有用的基本ReceiveFilter类(在命名空间“SuperSocket.ProtoBase”下),以帮助您简化协议分析:
- TerminatorReceiveFilter ,结束符协议
- CountSpliterReceiveFilter ,固定数量分隔符协议
- FixedSizeReceiveFilter, 固定请求大小的协议
- BeginEndMarkReceiveFilter,带起止符的协议
- FixedHeaderReceiveFilter, 头部格式固定并且包含内容长度的协议
基于SuperSocket.ClientEngine提供的基本接收过滤器,您应该根据你自己协议的详细信息来设计您自己的ReceiveFilter:
class MyReceiveFilter : TerminatorReceiveFilter<StringPackageInfo>
{
public MyReceiveFilter()
: base(Encoding.ASCII.GetBytes("||")) // two vertical bars as package terminator
{
} // other code you need implement according yoru protocol details
}
2、创建EasyClient实例,并使用前一步中创建的ReceiveFilter来初始化它。
var client = new EasyClient(); // Initialize the client with the receive filter and request handler
client.Initialize(new MyReceiveFilter(), (request) => {
// handle the received request
Console.WriteLine(request.Key);
});
3、建立连接,然后开始通信。
// Connect to the server
var connected = await client.ConnectAsync(new IPEndPoint(IPAddress.Parse("192.168.10.11"), )); if (connected)
{
// Send data to the server
client.Send(Encoding.ASCII.GetBytes("LOGIN kerry"));
}
SuperSocket.ClientEngine介绍的更多相关文章
- SUPERSOCKET.CLIENTENGINE 简单使用
首先 引用 SuperSocket.ClientEngine.Core.dll和 SuperSocket.ClientEngine.Common.dll 然后 就可以使用ClientEngine了. ...
- Unity中引入Supersocket.ClientEngine并测试
在使用Supersocket Server的过程中,发现Server是不支持.net 3.5的. 1.Server端中的几个Command: namespace SuperSocketProtoSer ...
- SuperSocket与SuperSocket.ClientEngine实现Protobuf协议
参考资料说明 SuperSocket文档 http://docs.supersocket.net/ Protobuf语言参考 https://developers.google.com/protoco ...
- SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
今天准备给大家介绍一个c#服务器框架(SuperSocket)和一个c#客户端框架(SuperSocket.ClientEngine).这两个框架的作者是园区里面的江大渔. 首先感谢他的无私开源贡献. ...
- 使用SuperSocket打造逾10万长连接的Socket服务
SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作 ...
- SUPERSOCKET 客户端
SUPERSOCKET.CLIENTENGINE 简单使用 2015年5月27日 HYJIACAN 发表回复 阅读 11,105 次 江大没有给ClientEngine的Demo,一直没有找到其它的. ...
- C#网络编程技术SuperSocket实战项目演练
一.SuperSocket课程介绍 1.1.本期<C#网络编程技术SuperSocket实战项目演练>课程阿笨给大家带来三个基于SuperSocket通讯组件的实战项目演示实例: ● 基于 ...
- SuperSocket
1.目前稳定版是 v1.6: 2.轻量级.可扩展.Socket应用程序框架: 3.你可以用来开发Socket服务端应用,不用关心如何使用Socket.如何维护Socket连接和Socket如何工作. ...
- 事件驱动的TCP协议Socket通信
事件驱动的TCP协议Socket通信 介绍 常规的Socket通信案例一般都是在某个线程中建立连接,然后用一个while(true)循环判断是或否有数据传输,但是这种方法有局限性. 1.收到消息在处理 ...
随机推荐
- Critical Regions和Guarded Regions区别
KeEnterCriticalRegion和KeLeaveCriticalRegion配合使用,能禁止用户模式APC和普通内核模式APC的调用,但是不能禁止特殊内核模式的调用(NormalRoutin ...
- 【转】如何在ASP.NET 2.0中定制Expression Builders
expressions是asp.net 2.0中的新特色,它可以使你在asp.net的页面里很方便的使用自定义的属性. 在ASPX页里只要使用$符号就可以访问到,你定制的属性了. 例如我们看个例子: ...
- 6.046 Design and Analysis of Algorithms
课程信息 6.046 Design and Analysis of Algorithms
- [译]用R语言做挖掘数据《五》
介绍 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. ...
- 使用http维持socket长连接
项目中有遇到问题如下: 1.旧版的cs服务,因为每个用户和唯一的长连接是在登录后绑定的,并且所有的消息报文均是基于该长连接去发送接收的,所以要求node服务要维持一个长连接,然后根据该用户获取长连接, ...
- BigDecimal 类的使用
BigDecimal 类的使用 1.使用 BigDecimal 的原因 由于需要计算金额,所有需要高精度计算,所有需要使用 BigDecimal 类. BigDecimal能够精确的表示一个小数, ...
- Groovy中each、find跳出循环
在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each.find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究: ...
- js 防止连续点击
简称 js防连点 var flag = true; $(".yzm>span").click(function(){ if(!flag){ return fals ...
- sql: Oracle 11g create procedure
CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList ( temTypeName nvarchar2, temParent int ) AS nco ...
- RequireJS 是一个JavaScript模块加载器
RequireJS 是一个JavaScript模块加载器.它非常适合在浏览器中使用, 它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJ ...