觅风十五年风雨与你同舟共济

[源码] HP_Socket-5.9.3内存加载Pack支持同步和100M以下数据传输源码分享

[复制链接]

微信扫一扫 分享朋友圈

gh7g23h 发表于 7 天前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
众所周知HP框架TCP是异步,没有同步
Pack模型只能传输4M以下数据
论坛里别人分享的传输大数据,我看了一下,发现他们没有针对服务端进行内存垃圾回收且传输的数据包没有唯一标识(如果客户Duan同时给发送多个数据给服务端,服务端可能会区分不了哪些数据包是谁发送的)
所以小弟我就魔改了一下,让它支持同步和稍微大一点的数据安全传输。



注意事项:
Pack模型里的代理类我删除了,因为我没用过代理端,不知道我魔改后的Pack模型用代理端是否有问题,索性就删除了。

有2个问题我无法解决,有能力的朋友可以自行解决。
1.只能传输200M以下的数据,超过这个体积会导致内存分配失败(具体原因是分包的时候没有可用的内存空间)

2.传输大体积数据后不要立刻断开连接,会导致接收方接收数据失败。
举个例子,连接ID1的客户Duan给服务端发送200M的数据,发送完成后ID1立刻断开和服务端的连接,此时服务端正在处理接收的数据,忽然间收到ID1断开连接的请求,服务端会触发的回调事件_断开函数,ID1发送给服务端的数据会被HP框架的回收内存垃圾给清理了,最终会造成接收ID1数据失败。
解决办法:在ID1发送完数据后延迟10秒(也可能是20秒,这个根据服务端的电脑性能判断)才能断开和服务端的连接

如果你是用长连接不打算断开,可以无视第2个问题。


QQ20250528-121541.jpg



游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

精彩评论5

80590711 发表于 6 天前 | 显示全部楼层
谢谢分享!~
回复 支持 反对

使用道具 举报

小麦555 发表于 4 天前 | 显示全部楼层
666学习了!!
回复 支持 反对

使用道具 举报

小麦555 发表于 3 天前 | 显示全部楼层
不错不错 支持下
回复 支持 反对

使用道具 举报

csw96781 发表于 昨天 02:55 | 显示全部楼层
支持你们一下下哈
回复 支持 反对

使用道具 举报

csw96781 发表于 2 小时前 | 显示全部楼层
感觉不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1