gh7g23h 发表于 2025-5-28 12:55:56

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个问题。






**** Hidden Message *****

80590711 发表于 2025-5-29 22:25:55

谢谢分享!~

小麦555 发表于 2025-5-31 07:55:54

666学习了!!

小麦555 发表于 2025-6-1 17:25:53

不错不错 支持下

csw96781 发表于 2025-6-3 02:55:52

支持你们一下下哈

csw96781 发表于 2025-6-4 12:25:50

感觉不错

图样图森破丶 发表于 2025-6-5 21:20:10

谢谢楼主,对了新人问下,这个也要15字吗

小白 发表于 2025-6-7 06:14:30

我知道错了,感谢大神分享

小白 发表于 2025-6-8 15:08:50

豆腐干士大夫

fghjgfkjhgk 发表于 2025-6-10 00:03:10

谢谢楼主,,,收藏ing
页: [1] 2 3
查看完整版本: HP_Socket-5.9.3内存加载Pack支持同步和100M以下数据传输源码分享