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

关注

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

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

蜜桃网站| 有没有免费看片的软件| 生殖瑜伽| 精品无码人妻一区二区免费AV| 美国伦理巜交换做爰| 黑料门今日黑料免费| 大雷QQ弹弹跳舞| 狗配女人宝典视频| 鲁鲁射击免费播放电视剧全部| 100%透光裸妆| 臭小子快拔出来我是你嫲视频| 欧美电影免费观看电视剧大全| 《警花交换做爰》| 女性三角毛毛区有片毛掉光正常吗| 无人区免费高清版观看| 无码人妻久久一区二区| 爱爱小说| 姑父有力挺送小芳的背景故事| 《熟睡的女邻居HD| 免费B站看大片真人电视剧| 蜜桃5荷尔蒙| 20厘米能插到肚子吗| 爱上兄弟的母亲6集免费观看| 日本WINDOWSSERVER...| 坤坤寒进桃子里在线看歌词| 少女配狗视频大全播放| 寡妇春性饥渴1-4| 真实双人插画的视频| 快拨出天我是你母亲歌词监控 | 少女初恋吃小头头视频免费| 98在线高清免费观看电视剧狂| 福利图| 女性开过苞后最明显的变化| 情趣内衣秀| 《寂寞的背叛》免费播放| 15岁女初中生免费观看电视剧 | 《家访的老师》动漫在线观看 | 欧美| 《教室里的激情》2| 《太太你想丈夫被开除吧》| 网红大赛