简介:
ETCP:简单的轻量级的高级网络协议。
简单:
- 容易调用,容易看懂,融入各个编程基础思维。
轻量级:
- ETCP是VS2013所开发的,全部源代码只有29.7KB (30,473 字节);
- 编译为DLL,DLL大小为:40.0KB (40,960 字节),包括安全SDL周期、启动安全检测、警告等级4级、调用约定为__cdecl、运行库为(/MT)。
高级:
- 它适合用于:充当IIS、游戏服务端、IM服务端… …只要TCP能干的事它都能干!
- 它也有属于自己的客户端:不粘包支持一包发送64MB支持三大代理:SOCKS4、SOCKS5、HTTP。自带心跳复用
- 它完全不知道什么叫“内存泄漏”。
- 它的字典里没有“崩溃”两个字。
- 单机服务器它能并发65535。群集最佳对象,服务器端的青睐。
- 它完全兼容所有主流Windows( >= xp sp1 32)。
使用说明:
_服务端回调参考 (子程序指针 服务指针, 子程序指针 客户句柄, 整数型 事件类型, 整数型 封包地址, 整数型 封包长度, 整数型 客户地址, 整数型 服务总数)
- 服务指针:“服务端创建”所返回的指针,方便在多服务端使用一个回调函数时的识别。
- 客户句柄:该服务端的客户端SOCKET。
- 事件类型:etcp_Accept:客户进入;etcp_Recv:数据到达;etcp_Close:客户断开。
- 封包地址: 该参数只有当事件为etcp_Recv时用到,使用”通用取数据”函数取出数据。
- 封包长度:“通用取数据”的第二个参数
- 客户地址:该服务端的客户端网络地址。
- 服务总数:该服务端的客户端当前数量。
- 无返回值
- 备注:注意:当在该函数里调用”服务端断开”断开某客户时会触发该客户端的etcp_Close事件是无法取到该客户端的正确“客户地址”的。
_客户端回调参考 (子程序指针 客户指针, 子程序指针 服务句柄, 整数型 事件类型, 整数型 封包地址, 整数型 封包长度, 整数型 服务地址)
- 客户指针:“客户端创建”所返回的指针,方便在多客户端使用一个回调函数时的识别。
- 服务句柄:该客户端的服务端SOCKET。
- 事件类型:etcp_Accept:连接成功;etcp_Recv:数据到达;etcp_Close:被断开。
- 封包地址: 该参数只有当事件为etcp_Recv时用到,使用”通用取数据”函数取出数据。
- 封包长度:“通用取数据”的第二个参数
- 服务地址:该客户端的服务端网络地址。
- 无返回值
- 备注:注意:当在该函数里调用”客户端断开”断开服务端时会触发该客户端本身的etcp_Close事件是无法取到该客户端的服务端的正确”客户地址”的。
ETCP初始化 (子程序指针 服务端回调, 子程序指针 客户端回调, 整数型 内置缓冲)
- 服务端回调:查看模块自带的”_服务端回调参考”函数参考。
- 客户端回调:查看模块自带的”_客户端回调参考”函数参考。
- 内置缓冲:TCP内核标准接收一次是8192字节。假设该程序您想用配套客户端,那么128参值是最佳选择;假设该程序您想用于IIS等标准的服务,那么可以想象下您的客户端最大的一个包会发送多少字节则填写多少参值。
- 返回值:返回0为初始化成功;其他为失败!
- 备注:该函数每个程序只能调用一次,并且必须最先级调用。
服务端创建 (整数型 绑定端口, 逻辑型 配套模式, 文本型 绑定地址)
- 绑定端口:端口范围:1024至65535。
- 配套模式: 真则配套,则只接收本模块的客户端为配用。假为任意客户端。默认值:假。
- 绑定地址:默认:”0.0.0.0″。可绑定如:”127.x.x.x”、”192.168.x.x”。
- 返回值:返回0创建失败,创建成功返回该服务端的指针地址!
- 备注:例如充当IIS的参数:(80,假,”0.0.0.0″)。
服务端发送 (整数型 服务端指针, 整数型 客户端句柄, 字节集 数据)
- 服务端指针:“服务端创建”所返回的指针。
- 客户端句柄: “_服务端回调参考”的第二个参数:客户句柄。
- 数据:任意字节集数据。
- 返回值:返回真发送成功,反之发送失败。
- 备注:配套可以发送最大包为64MB既(6553500);非配套可以发送无限字节。
服务端断开 (整数型 客户端句柄, 逻辑型 立即断开)
- 客户端句柄:“_服务端回调参考”的第二个参数:客户句柄。
- 立即断开: 是否立即断开客户端?
- 返回值:返回真断开了该客户端,反之断开失败。
- 备注:如果”立即断开”为真,则客户端接收不到数据就断开了,好处是立即断开了socket,释放了所有资源。如果”立即断开”为假时,则为优雅的关闭掉客户端,客户端可以接收到服务端发送过来的数据,立即释放模块资源,但是系统内核无法释放掉socket,等待下次再有新的客户端则该客户端socket被复用。
服务端关闭 (整数型 服务端指针)
- 服务端指针:“服务端创建”所返回的指针。
- 返回值:返回真关闭成功,反之关闭失败。
- 备注:释放掉该服务端的资源。
通用取数据 (整数型 封包地址,整数型 封包长度)
- 封包地址:对应回调里的参数传进即可。
- 封包长度:对应回调里的参数传进即可。
- 返回值:返回内存地址的数据。
- 备注:如果封包地址不正确取出来的数据为空。
客户端连接 (文本型 服务端地址, 子程序指针 服务端端口, 整数型 代理类型, 文本型 代理地址, 整数型 代理端口, 文本型 代理帐号, 文本型 代理密码)
- 服务端地址:服务器的IP地址,不能是域名。
- 服务端端口:服务器的网络端口。
- 代理类型:默认0则不使用代理;1:SOCKS4;2:SOCKS5;3:HTTP。
- 代理地址: 代理服务器的IP地址,不能是域名。
- 代理端口:代理服务器的网络端口。
- 代理帐号:代理服务器的帐号,无帐号写空即可。
- 代理密码:代理服务器的密码,无密码写空即可。
- 返回值:返回0连接失败,连接成功返回该客户端的指针地址!
- 备注:关于超时自行解决。
客户端发送 (整数型 客户端指针, 字节集 数据)
- 客户端指针:“客户端连接”所返回的指针。
- 数据:任意数据
- 返回值:返回真则发送成功!
- 备注:可以发送最大包为64MB既(6553500)。
客户端断开 (整数型 客户端指针)
- 客户端指针:“客户端连接”所返回的指针。
- 返回值:返回真则断开成功!
- 备注:理解释放所有该客户端的资源。