开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2256|回复: 23
收起左侧

[易语言纯源码] TCP粘包问题dome,有好多问题,那个大佬能完善一下

[复制链接]
结帖率:100% (2/2)
发表于 2023-7-17 22:15:58 | 显示全部楼层 |阅读模式   湖南省郴州市
分享源码
界面截图: -
是否带模块: -
备注说明: -
今天遇到了TCP粘包问题,想了一下就写了一个dome,但是写的时候发现有好多问题,

现基本粘包已经解决,那个大佬能完善一下,或者发一个例子




服务器.e

895.86 KB, 下载次数: 15, 下载积分: 精币 -2 枚

客户.e

2.72 KB, 下载次数: 15, 下载积分: 精币 -2 枚

1.png

评分

参与人数 2好评 +1 精币 +4 收起 理由
wa690602724 + 1 感谢分享,很给力!~
易语言资源网 + 1 + 3 开源精神必须支持~

查看全部评分


结帖率:0% (0/2)

签到天数: 13 天

发表于 2024-7-28 01:07:06 | 显示全部楼层   香港特别行政区*
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 11 天

发表于 2023-8-4 01:35:44 | 显示全部楼层   浙江省温州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 1 天

 楼主| 发表于 2023-7-22 13:03:54 | 显示全部楼层   湖南省郴州市
曽祥冠 发表于 2023-7-22 01:58
别用自带的服务端组件和客户Duan组件了,改用API创建或者用HP吧,自带的服务端组件不好分类客户机,就算写 ...

是的,我这只是随便写的一个demo,根本没有考虑这些
回复 支持 反对

使用道具 举报

发表于 2023-7-22 01:58:23 | 显示全部楼层   海南省临高县
别用自带的服务端组件和客户Duan组件了,改用API创建或者用HP吧,自带的服务端组件不好分类客户机,就算写好了客户分类也会影响到效率,看了你写的服务端代码,接收数据函数里面开始几行竟然有多线程通行证?先不说你能不能同时接收上千上万个客户Duan链接的数据接收,10个客户Duan的数据接收都慢的要死,因为你在最关键的地方使用了通行证。建议你改用API创建或者用HP吧,或者随便在论坛下载个API创建带粘包处理的代码都比你这强啊
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2023-7-21 14:40:32 | 显示全部楼层   山东省青岛市
qmxun 发表于 2023-7-20 11:01
你这是自己发自己收,如果是别的软件发你收出现粘包怎么整

所有的都会处理粘包情况
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2023-7-21 04:06:40 | 显示全部楼层   贵州省黔南布依族苗族自治州
Svlik 发表于 2023-7-20 19:20
PULL模式是不是需要自己分包?

当是需要自己分包.
PULL模式是已经帮你组包了. 分包就看你的自己的了.
网络传输 各地的路由器 规则不同 自然会可能被 粘包 分包.
而且PULL线程安全. 我写的模拟器都是用PULL搞的.

PACK模式 则是不需要自己处理组包分包了 内部帮你做了 你看不到.
但是PACK模式 必需两边都是PACK.
他其实就是 比如你发送的是 0x11223344 他会帮你在网络中按 0x0400000011223344 传过去.
而对方收到后 根据 04000000知道本轮传输长度为4.就取出后面的 11223344 去回调你的HPPACK模式的接收函数 OnRecv.. Recv的参数就有 11223344 的内存地址和长度.
回复 支持 反对

使用道具 举报

结帖率:98% (45/46)

签到天数: 1 天

发表于 2023-7-20 19:20:10 | 显示全部楼层   重庆市重庆市
accet 发表于 2023-7-20 16:43
用正常模式就行了. 或是 PULL模式就行了.

PACK模式 那是在TCP上重新定义自己的一套。 当然需要两边都是P ...

PULL模式是不是需要自己分包?
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2023-7-20 16:43:37 | 显示全部楼层   贵州省黔南布依族苗族自治州
Svlik 发表于 2023-7-18 01:34
HP挺不错的 但是有个大问题。就是如果你使用HP库  其他的平台 如PHP HTML 使用 原生库 就无法连接。 ...

用正常模式就行了. 或是 PULL模式就行了.

PACK模式 那是在TCP上重新定义自己的一套。 当然需要两边都是PACK模式了.
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2023-7-20 16:39:53 | 显示全部楼层   贵州省黔南布依族苗族自治州
直接用ETCP打开配套模式就行了 不需要自己处理了 HPPack模式也是一样.
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 1 天

 楼主| 发表于 2023-7-20 11:44:22 | 显示全部楼层   湖南省郴州市
qmxun 发表于 2023-7-20 11:01
你这是自己发自己收,如果是别的软件发你收出现粘包怎么整

一般都指的是自己的客户Duan和服务端,如果真有需求要收别的客户Duan发的数据,发生粘包,就抓一下包,看一下他的格式是什么取修改服务端了。
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表