python怎么解决黏包问题
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下python怎么解决黏包问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、了解发送数据的大小,设置接
千家信息网最后更新 2026年11月02日python怎么解决黏包问题
小编给大家分享一下python怎么解决黏包问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1、了解发送数据的大小,设置接收的大小,这样就可以正好接收所有的数据。黏包问题是由于tcp的优化算法将两个不太大的数据包组合在一起发送的。
这种情况通常发生在连续使用几个send()时。
这是远程执行cmd命令并返回结果的程序server端代码import structimport socketsk = socket.socket()sk.bind(('127.0.0.1',8080))sk.listen()conn,addr = sk.accept()while True: cmd = input('>>>') conn.send(bytes(cmd,encoding='utf-8')) num = conn.recv(1024).decode('utf-8') #接收client端计算好的数据长度 conn.send(bytes('ok',encoding='utf-8')) #发送一个确认防止发送num的时候跟后面的send内容合并了 ret = conn.recv(num) print(ret.decode('gbk'))conn.close()sk.close()2、使用struct模块解决粘合现象。
server端代码 #tcp黏包现象的解决 structimport structimport socketsk = socket.socket()sk.bind(('127.0.0.1',8080))sk.listen()conn,addr = sk.accept()while True: cmd = input('>>>') conn.send(bytes(cmd,encoding='utf-8')) # num = conn.recv(1024).decode('utf-8') num = conn.recv(1024) #接收数据 num = struct.unpack('i',num)[0]#进行解包,解包的结果是一个元组类型取第一个数据 # conn.send(bytes('ok',encoding='utf-8')) ret = conn.recv(num) print(ret.decode('gbk'))conn.close()sk.close()以上是"python怎么解决黏包问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数据
问题
内容
篇文章
代码
大小
现象
结果
不怎么
两个
命令
大部分
情况
时候
更多
模块
知识
程序
算法
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网
湖北九亚互联网络科技有限公司
科技互联网企业
河南真二互联网科技有限公司
互联网科技的英文
九亚互联网科技
互联网 新科技
四川狮子座互联网科技
互联网科技生活的内容
互联网科技公司招聘
互联网科技公司需要的职位
朱啸虎曾投资哪些互联网科技企业
中和天地互联网科技有限公司
中国互联网有什么科技
上海互联网科技公司ppt
云南互联网科技学费
北京军民互联网科技公司
唐山双旺合互联网科技产业园
每日互联网科技新闻
武汉亿视互联网科技有限公司
互联网科技的
互联网科技与金融科技
中国 科技 互联网
浩特互联网科技
亿账通互联网科技
青海省互联网新科技
特约风豹互联网科技为什么扣费
滨湖区互联网智能科技产品有哪些
国产互联网科技公司
银川新华互联网科技学校是国营吗