本帖最后由 佛守瓜 于 2017-2-14 21:56 编辑
HP-Socket 开源的,dll才371k,内嵌到资源里也不大.
纯分享干货.
还有个小问题没搞定,请大家一起来折腾.
问题描述: 发消息时有时会乱码.如:
第一次发123456789,没事
第二次,修改了文本内容加个0,发1234567890,服务端输出收到的内容就乱码了
再比如,先发abcdefg,然后再发abcdefgh,也乱码 .
再比如,直接发0123456789,就会乱码
尝试过的解决方法:
个人认为是发送文本内容的取长度问题导致的,也有可能是以0开头或以0结尾导致的
# 取长度
string.len() 取长度
string.indexOf() 取最后一个字符
split() 取上限
折腾不容易,愿意分享更不容易,且研究且珍惜------------------------------------------------------------------------------------------------------------------------------------
继续更新:
HP_FN_Server_OnClose = function(pSender, dwConnID, enOperation, iErrorCode){
//需要处理,不然客户端退出时服务端会崩溃
}
------------------------------------------------------------------------------------------------------------------------------------更新:乱码问题已解决,放云服务器上也能跑起来了。let's go!
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
QQ截图20170214131241.png (9.69 KB, 下载次数: 82)
2017-2-14 13:13 上传
/*
--------------------------------------------------------------------------------------
HP-Socket 官方网站:http://www.jessma.org
HP-Socket 项目主页:http://www.oschina.net/p/hp-socket
HP-Socket 开发文档:http://www.oschina.net/p/hp-socket/doc
HP-Socket 源代码下载地址:https://github.com/ldcsaa/HP-Socket
.net虽然提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包、组包、粘包、心跳检测、维护连接列表等,
UDP协议需要处理到达确认、乱序、维护连接列表等问题,而且对于多连接并发,还要自己处理多线程,
对于很多不清楚socket通信细节的人来说,很难自己写出一个稳定高效的socket通信组件。
HP-Socket的PACK模型基于TCP协议,自动处理分包、组包、粘包、心跳检测等,使得应用程序只需要专注于业务逻辑处理,非常的实用,
而且HP-Socket项目经过几年的沉淀,还是被证明非常的稳定,免费、开源、稳定、高效、详细的文档,无论从哪方面看,HP-Socket都应该算的上国产优秀的开源项目。
HP-Socket 的PACK模型自动处理了TCP协议socket通信的分包、组包、粘包、心跳等,对于一些没有特殊要求的应用是很好的选择.
--------------------------------------------------------------------------------------
0. (C/C++ 程序)包含 HPTypeDef.h / HPSocket4C.h 头文件
1. 调用 ::Create_HP_XxxListener() 函数创建监听器对象
2. 调用 ::Create_HP_Xxx(pListener) 函数创建 HPSocket 对象
3. 调用 ::HP_Set_FN_Xxx_OnYyy(pListener, ...) 函数设置监听器的回调函数
4. 调用相关导出函数操作 HPSocket 对象
5. ...... ......
6. 调用 :
estroy_HP_Xxx(pSocket) 函数销毁 HPSocket 对象
7. 调用 :
estroy_HP_XxxListener(pListener) 函数销毁监听器对象
--------------------------------------------------------------------------------------
[服务端]
1、创建 TcpPackServer 对象
2、绑定事件