开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 5562|回复: 25
打印 上一主题 下一主题
收起左侧

[易语言纯源码] 通用分包组包源码- 雪松整理

[复制链接]
结帖率:100% (1/1)
跳转到指定楼层
发表于 2020-10-15 22:41:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   山东省青岛市
分享源码
界面截图: -
是否带模块: -
备注说明: -
tcp协议 大家接触了不少,但问题是,大部分都不支持分包组包。我整理出 分包组包通用 源码。用到了映射文件类来整合数据,速度刚杠的。调用举例如下:



客户端发送大数据,先组包:
t2:tcp数据类  (模块中的类)

.版本 2

.如果真 (初始化1 ≠ 0 且 客户连接1 ≠ 0)
    a = 取重复文本 (9001, “测试1”) + “--over”
    ' 输出调试文本 (取文本长度 (a), 取字节集长度 (到字节集 (a)))
    客户发送大数据 (客户连接1, 到字节集 (a))‘’客户连接是 连接服务器后的返回值
    返回 ()


.版本 2

.子程序 客户发送大数据, 逻辑型
.参数 客户连接
.参数 a, 字节集
.局部变量 局部_数据指针, 整数型
.局部变量 局部_数据长度, 整数型
.局部变量 局部_返回长度, 整数型

a = t2.封包处理 (a)  ' + { 0 }
局部_数据指针 = _lstrcpyn_字节集 (a, a, 0)
局部_数据长度 = 取字节集长度 (a)
.判断循环首 (真)

    局部_返回长度 = c.客户_写 (客户连接, 局部_数据指针, 局部_数据长度)‘’‘循环发送
    输出调试文本 (“客户发送长度:” + 到文本 (局部_返回长度))
    .如果 (局部_返回长度 = 0)
        返回 (假)  ' '失败
    .否则

    .如果结束
    局部_数据指针 = 局部_数据指针 + 局部_返回长度
    局部_数据长度 = 局部_数据长度 - 局部_返回长度
    .如果 (局部_数据长度 ≤ 0)
        返回 (真)
    .否则

    .如果结束

.判断循环尾 ()

返回 (真)




服务端:
t1:tcp数据类。

在收到数据回调事件中  先读取,然后组装


.版本 2

.判断 (事件类型 = #数据到达)

    接收 = 取空白字节集 (数据长度)
    ' 输出调试文本 (“服务器收到长度:” + 到文本 (数据长度))
    s.服务器_读 (数据地址, _lstrcpyn_字节集 (接收, 接收, 0), 数据长度)
    ' 输出调试文本 (“服务器收到:” + 到文本 (接收))
    t1.数据处理 (&服务器数据处理事件, 事件类型, , , 数据地址, 取字节集指针 (接收), 数据长度, , , , )‘ ’ 在 服务器数据处理事件 中  自动组包。

    返回 ()


.版本 2

.子程序 服务器数据处理事件
.参数 消息类型, 整数型
.参数 服务端句柄
.参数 客户句柄, 整数型
.参数 数据地址, 整数型
.参数 实际数据地址, 整数型, , 实际数据地址
.参数 数据长度, 整数型
.参数 备用1
.参数 备用2
.参数 备用3
.参数 备用4
.局部变量 接收, 字节集

.如果 (选择框1.选中)
    日志 (“服务器收到(” + 到文本 (数据长度) + “):” + 到文本 (指针到字节集 (实际数据地址, 数据长度)))
    返回 ()
.否则

.如果结束
接收 = 取重复字节集 (2000, 到字节集 (“dad大概哈根达斯哈根达斯要”)) + 到字节集 (到文本 (取随机数 (1, 2000)) + “-over”)  ' ’‘’取字节集左边 (接收 + { 24, 232 }, 80)
服务器发送大数据 (数据地址, 接收)‘’‘再发送回去


高性能 cs 程序,快速传递文件。可以来交流。         3琪酒灵四九四八Ⅱ。

只是例子,大家用到自己的程序中 作个参考。

分包组包2.zip (1.45 MB, 下载次数: 143)






补充内容 (2020-10-18 20:05):
有不少网友反映 少了个模块, 放在13楼了。大家重新下载吧

评分

参与人数 1精币 +1 收起 理由
只对你有感觉 + 1 很赞同,谢谢!

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 11 天

25
发表于 2024-5-7 20:13:05 | 只看该作者   安徽省宣城市
好东西支持一下
回复 支持 反对

使用道具 举报

签到天数: 11 天

24
发表于 2024-5-7 20:05:32 | 只看该作者   安徽省宣城市
好东西支持一下
回复 支持 反对

使用道具 举报

签到天数: 11 天

23
发表于 2024-5-7 19:06:34 | 只看该作者   安徽省宣城市
感谢楼主,正好需要文件传输的例子
回复 支持 反对

使用道具 举报

22
发表于 2024-1-20 17:00:11 | 只看该作者   安徽省蚌埠市
6666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (15/15)
21
发表于 2023-10-22 09:21:15 | 只看该作者   河北省唐山市
必须支持下,牛逼克拉斯
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
20
发表于 2023-9-27 21:27:17 | 只看该作者   四川省成都市
6666666666666666666666
回复 支持 反对

使用道具 举报

19
发表于 2022-11-19 11:03:50 | 只看该作者   湖南省郴州市
1111111111111111111111111111111
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

18
 楼主| 发表于 2020-11-13 14:34:08 | 只看该作者   山东省青岛市
这是自定义协yi组包
回复 支持 反对

使用道具 举报

签到天数: 4 天

17
发表于 2020-11-12 09:30:53 | 只看该作者   广东省深圳市
请问支持QQ组包吗?
回复 支持 反对

使用道具 举报

签到天数: 4 天

16
发表于 2020-11-12 09:30:17 | 只看该作者   广东省深圳市
看看谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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