国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python如何解决黏包问题

python如何解决黏包问题

python黏包问题

头像

小妮浅浅

2021-09-11 09:37:062941浏览 · 0收藏 · 0评论

1、了解发送数据的大小,设置接收的大小,这样就可以正好接收所有的数据。黏包问题是由于tcp的优化算法将两个不太大的数据包组合在一起发送的。

这种情况通常发生在连续使用几个send()时。

这是远程执行cmd命令并返回结果的程序
server端代码
import struct
import socket
sk = 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黏包现象的解决 struct
import struct
import socket
sk = 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解决黏包问题的方法,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

挺进朋友人妻张婉莹身体| 跳舞| YSL水蜜桃86满十八岁会黑吗..| 色情性黄17C片麻豆AV| 雨后小故事| 成全在线观看免费完整| 能不能在办公室干事你电视剧| 苏软软汆肉的日常三鲜小馄饨| 姐妹花齐飞| 日本大片又大又好看的PPT| 美女和男生一起努力的生孩子视频.| 吻戏| 三男一女CP免费观看电视剧大全| 丁香花影院免费观看电视剧哈尔滨| 放荡的女兵伦理2| 《插曲的痛免费观看第二季》| 日本簧片在线观看| 善良的公与媳HD中字| 闺蜜老公把我压在怀里| 引诱亲女乱第24部分阅读| 水氏杨花与十二轿夫免费阅读| 男生的困困塞女生的困困里| BOBO浏览器老司机模式改版特...| 青丝影院大全免费2023年新版| 《吃你吃上瘾》| 年轻的母亲在线观看完整版刘海的..| 两个男人睡一个女人什么心理呢 | 乱公伦媳2| 性感内衣女装| 教室停电插班花赵柔笔趣阁| 动物扌雷辶鬲的小说| 女性抹胸开襟哺乳衣的注意事项| 公交车被上高湖了还能坐吗小说| 做爰高潮A片(毛片)| 情趣内衣秀| 五姑娘影院在线观看免费版电视剧 | 凯登·克罗斯| 善良的嫂子| 《尼姑也疯狂》完整版 | 爸井空《办公室爱欲》| 做到你合不拢腿为止