|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 遗失的眼泪 于 2025-5-26 23:19 编辑
前言:
众所周知HP框架TCP是异步,没有同步
Pack模型只能传输4M以下数据
论坛里别人分享的传输大数据,我看了一下,发现他们没有针对服务端进行内存垃圾回收且传输的数据包没有唯一标识(如果客户Duan同时给发送多个数据给服务端,服务端可能会区分不了哪些数据包是谁发送的)
所以小弟我就魔改了一下,让它支持同步和稍微大一点的数据安全传输。
注意事项:
Pack模型里的代理类我删除了,因为我没用过代理端,不知道我魔改后的Pack模型用代理端是否有问题,索性就删除了。
有2个问题我无法解决,有能力的朋友可以自行解决。
1.只能传输200M以下的数据,超过这个体积会导致内存分配失败(具体原因是分包的时候没有可用的内存空间)
2.传输大体积数据后不要立刻断开连接,会导致接收方接收数据失败。
举个例子,连接ID1的客户Duan给服务端发送200M的数据,发送完成后ID1立刻断开和服务端的连接,此时服务端正在处理接收的数据,忽然间收到ID1断开连接的请求,服务端会触发的回调事件_断开函数,ID1发送给服务端的数据会被HP框架的回收内存垃圾给清理了,最终会造成接收ID1数据失败。
解决办法:在ID1发送完数据后延迟10秒(也可能是20秒,这个根据服务端的电脑性能判断)才能断开和服务端的连接
如果你是用长连接不打算断开,可以无视第2个问题。
特别鸣谢【君杰】和【凌哥】
DLL和汉化模块用的是君杰共享的5.9.3:https://bbs.125.la/forum.php?mod=viewthread&tid=14804727
同步框架是抄凌哥的
分包和组包我忘了是参考论坛里谁的了
|
评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 鱼木|主题: 1604, 订阅: 155
- · 希望能用到|主题: 1144, 订阅: 11
|