觅风论坛
标题:
HP_Socket-5.9.3内存加载Pack支持同步和100M以下数据传输源码分享
[打印本页]
作者:
gh7g23h
时间:
2025-5-28 12:55
标题:
HP_Socket-5.9.3内存加载Pack支持同步和100M以下数据传输源码分享
众所周知HP框架TCP是异步,没有同步
Pack模型只能传输4M以下数据
论坛里别人分享的传输大数据,我看了一下,发现他们没有针对服务端进行内存垃圾回收且传输的数据包没有唯一标识(如果客户Duan同时给发送多个数据给服务端,服务端可能会区分不了哪些数据包是谁发送的)
所以小弟我就魔改了一下,让它支持同步和稍微大一点的数据安全传输。
注意事项:
Pack模型里的代理类我删除了,因为我没用过代理端,不知道我魔改后的Pack模型用代理端是否有问题,索性就删除了。
有2个问题我无法解决,有能力的朋友可以自行解决。
1.只能传输200M以下的数据,超过这个体积会导致内存分配失败(具体原因是分包的时候没有可用的内存空间)
2.传输大体积数据后不要立刻断开连接,会导致接收方接收数据失败。
举个例子,连接ID1的客户Duan给服务端发送200M的数据,发送完成后ID1立刻断开和服务端的连接,此时服务端正在处理接收的数据,忽然间收到ID1断开连接的请求,服务端会触发的回调事件_断开函数,ID1发送给服务端的数据会被HP框架的回收内存垃圾给清理了,最终会造成接收ID1数据失败。
解决办法:在ID1发送完数据后延迟10秒(也可能是20秒,这个根据服务端的电脑性能判断)才能断开和服务端的连接
如果你是用长连接不打算断开,可以无视第2个问题。
作者:
80590711
时间:
2025-5-29 22:25
谢谢分享!~
作者:
小麦555
时间:
6 天前
666学习了!!
作者:
小麦555
时间:
5 天前
不错不错 支持下
作者:
csw96781
时间:
3 天前
支持你们一下下哈
作者:
csw96781
时间:
前天 12:25
感觉不错
欢迎光临 觅风论坛 (https://www.eyyba.com/)
Powered by Discuz! X3.4