异步Socket框架 HSocket

MIT
C# 查看源码»
跨平台
2016-09-12
kingge168

这是一个L/V(Length/Value)模型的异步Socket框架.L是指发送byte数组的长度,L固定为10个byte,V是指要发送的byte数组.可以用于处理超长的消息,处理完成的响应也按照L/V模型发送,客户端接收可以参考服务端解析过程。

eg:

  • 1.第一次收到的byte[]:0 0 0 0 0 0 1 1 1 2 28 30 18 26 88 99 77 那么先取0 0 0 0 0 0 1 1 1 2,得到长度为1112,对后面的byte(从index10以后)进行存储 

  • 2.第二次收到的byte[]:5 10 0 66 0 0 1 1 1 2 28 30 18 26 88 99 44 那么继续存储收到的byte[],在之前的存储上追加 ... ... n.直到第n次收到byte[],在之前的存储上追加,当存储的byte[]长度等于1112时停止接收,开始解析,解析完成按照L/V模型组织发送,发送完毕继续步骤1.(中间遇到过程错误,将关闭会话)

特别提醒:

  • 1.仅支持UTF8编码解析,原因是UTF8支持任何语言.采用Node.js做测试时,只用了英文字符做发送,原因是UTF8编码英文字符的长度和字符串长度一致(1:1). 

  • 2.Command必须实现CommandBase类,并且有一个无参构造函数(当然你可以修改代码,移除此限制,多数情况下这也完全够用),实现的Command类必须名称以Command结尾(大小写敏感).eg:TCommand,客户端发送命令参考Node.js实现,Command为T,则正确匹配TCommand处理返回结果. 

  • 3.配置文件参考server.cfg,生成时需拷贝到生成目录(vs可以通过属性设置实现). 

  • 4.有很多实现可以提取出接口,进一步优化使得更加容易扩展,更加灵活. 

  • 5.如果发现任何问题和不足之处或者BUG请email给我:kingge163@163.com

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

C++从NTP服务器取时间、转本地时间(Windows)

#include <iostream> #define _WINSOCK_DEPRECATED_NO_WARNINGS #define WIN32_MEAN_AND_LEAN #include <winsock2.h> #include <windows.h> #include <time.h> #pragma comment(lib,"ws2_32....

01/12 11:00
16
0
服务器端编程心得(六)—— 关于网络编程的一些实用技巧和细节

这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮...

2018/05/24 22:53
16
0
Windows Socket套接字:MFC套接字编程

网络名词解释 同步:指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式 异步:指的是发送方不等接收方响应,便接着发下个数据包的通信方式; 阻塞:指调用某函数时,...

2018/04/25 22:19
63
0
acl 工程介绍

一、概述 acl 工程是一个跨平台的通用网络通信库,同时提供更多的其它有价值功能。通过该库,用户可以非常容易地编写支持多种模式的服务器程序、WEB 应用程序以及数据库应用程序。此外,该库...

2013/01/09 12:11
289
1
acl 框架库简介

一、概述 acl 工程是一个跨平台的通用网络通信库,同时提供更多的其它有价值功能。通过该库,用户可以非常容易地编写支持多种模式的服务器程序、WEB 应用程序以及数据库应用程序。此外,该库...

2013/12/28 21:40
494
1
acl 框架库简介

一、概述 acl 工程是一个跨平台的通用网络通信库及服务器编程框架,同时提供更多的其它有价值功能。通过该库,用户可以非常容易地编写支持多种模式的服务器程序、WEB 应用程序以及数据库应用...

2014/09/03 12:11
49
0
网络与服务器编程框架库 acl

一、描述 acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多...

2014/08/28 21:30
37
0
iOS推送APNS

ios推送消息

2015/12/18 15:32
268
0
基于Linux的socket编程模板

在网络编程编程中,我们经常会遇到这样一种C/S架构,服务器端(Server)监听客户端(Client)发送过来的命令,然后解析该命令,并做对应的处理,最后返回处理结果(例如成功或者失败及原因)...

2016/12/09 10:53
3
0
tcp粘包分析

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接: 1.长连接 Client方与Server方先建立通讯连接...

2015/04/05 16:48
16
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部