广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1146|回复: 4

求个socket分包和组包的DEMO

[复制链接]

25

主题

118

帖子

747

积分

高级会员

Rank: 4

积分
747
QQ
发表于 2024-9-23 16:57:14 | 显示全部楼层 |阅读模式
求个字符串转字节集后的socket分包和组包的DEMO
欢迎加入大彩爱好者QQ群:14769485
回复

使用道具 举报

0

主题

388

帖子

1120

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1120
发表于 2024-9-23 18:50:33 | 显示全部楼层
网络传输是稳定的,TCP是可靠传输,不需要分包去做的
回复

使用道具 举报

25

主题

118

帖子

747

积分

高级会员

Rank: 4

积分
747
QQ
 楼主| 发表于 2024-9-23 21:43:31 | 显示全部楼层
本帖最后由 小逸老师 于 2024-9-23 21:50 编辑
dctechnology 发表于 2024-9-23 18:50
网络传输是稳定的,TCP是可靠传输,不需要分包去做的

主屏幕是服务端,向丛屏幕(客户端)发送了1800个字节数据,丛屏幕一共收到了好几个包。因为服务端自己做的所以在服务器发送的数据尾部加了<EOF>作为判断,第三方的socket加不了,数据被分好几段接收,不好做校验。这个有解决方式吗

function on_client_recv_data(data)
        local tmp_text = hexall_to_str(data)
        local tmpmatch = string.find(tmp_text, "<EOF>")
        tmp_text = string.gsub(tmp_text, "<EOF>", "")
        datapack = datapack ..tmp_text
        if tmpmatch == nil then
                --没收完整
        else
                --接收完整
                sk_kehuret(datapack)
                datapack=""
        end
end

主屏幕倒是一次性发送完毕了,但是丛屏幕需要多次才能接收完毕
欢迎加入大彩爱好者QQ群:14769485
回复

使用道具 举报

25

主题

118

帖子

747

积分

高级会员

Rank: 4

积分
747
QQ
 楼主| 发表于 2024-9-25 18:43:22 | 显示全部楼层
dctechnology 发表于 2024-9-23 18:50
网络传输是稳定的,TCP是可靠传输,不需要分包去做的

贴贴,帮看看如何处理socket接收数时被分了好几个包的情况咋整呀
欢迎加入大彩爱好者QQ群:14769485
回复

使用道具 举报

0

主题

388

帖子

1120

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1120
发表于 2024-9-26 11:10:53 | 显示全部楼层
如果分包了,可以用串口自由协议的思路,用数组接收完整一帧,判断接收完整一帧数据后做清空数组的操作
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-11-21 18:28 , Processed in 0.045328 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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