python怎么解决黏包问题
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,小编给大家分享一下python怎么解决黏包问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、了解发送数据的大小,设置接
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
服务器直接设置公网ip
数据库文件大小的最小值是
脚本检查服务器22端口
安徽宣城软件开发培训哪里有
软件开发dto层
数据库 项目 步骤
辰盾2018网络安全
其他网络安全法
护苗网络安全完整版内容
云服务和软件开发事业部
汉川总工会网络安全宣传周
小孩子玩网络安全吗
大规模网络安全事件
数据库视图修改id值是否改变
数据库录入数据怎么换行
安徽巢湖软件开发培训排名
人类一败涂地怎么连接我的服务器
备份好的数据库文件怎么还原
aix查询数据库
御龙在天登录后服务器断电
我学的软件开发能进华为公司吗
重庆程序软件开发机构
软件开发中常见的数据类型
绝地大逃杀租服务器
服务器柜价格
网络安全量子科技概念股
软件开发相关的竞赛
台湾网络安全部视频
内网服务器安全设置
御龙在天登录后服务器断电