国产成人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电脑。

关注

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

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

《麦子的秘密2》| 无人区免费观看高清电视剧| 国产少女免费观看电视剧大全| 日产无码久久久久久精品红桃| 扒开粉嫩小滨白浆20P| 97人妻人人躁人人玩人人澡AV| 梦幻西游四门绝阵| 女人用嘴巴吸出精子会反流吗| 少女配狗播放视频| 青梅竹马是消防员第一部| 白丝小脚夹住命根上下摩擦的预防..| 交替轮换4| 门卫老头吸允校花奶头| 初中女生光溜溜身子拉屎视频| 可切换老司机模式浏览器| 男生把小困困放到女生困里视频| 金瓶风月电影高清完整版| 7777影院免费观看电视剧大全| 《女教师的味道3》在线观看| 《如狼似虎的女人》大结局| 白丝袜精华液抹在脚上的功效| 亚洲一区| 大雞巴亂倫1~2集在线播放| 妈妈がだけの心に漂う| 非洲女人免费观看大全电视剧| 趁老师睡着破了她的处| 特殊按摩治疗师| 绝美儿媳妇苏酥| 亚州久久久久久精品A片69| 销售的销售秘密3HD中字| 禁忌1| 放荡的女兵伦理2| 1688黄桃网站进入页面 | 三妻四妾双女免费观看完整版| 浏览器| 公么无耻要求中韩双字的意思| 初中封闭学校| 女生把球球给男生抓的视频| 香港十大禁片| 免费观看已满十八岁电视剧在线播...| 欧美大妈LOGO大全