韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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| 公交车被上高湖了还能坐吗小说 | 美女被咬小头头视频大全| 18禁男男腐啪GV真人视频| 国产X9X9X9X9X9X任意...| 陌陌影视在线观看高清完整版| 在床上怎么骚一点| 《法国空乘5》观看| 一品国精和二品国精的文化意义| 国产少女免费观看电视剧大全| 哈尼克孜| 97在线观看免费高清电视剧大全... | 樱花视频在线观看免费高清电视剧 | 毛片| 女人尝试到更粗大的心理变化| 《夜班护士》结局| 九九在线观看免费播放大全电视剧 | 适合做前看的短篇小说| 停电了同桌把我拉入怀中小说| 《疯狂72小时》韩剧| 免费观看已满十八岁的电视剧大全| 美国伦理〈欲奴3)| 18岁的少女与狗高清电视剧| 伦理《少妇的滋味》完整版| 男生把小困困放到女生困里视频| 11人裸体航班女服务员是谁| 闺蜜老公把我压在怀里| 坤坤寒进桃子里在线看歌词| 羞答答在线观看免费高清电视剧 | 二人生猴子全程免费| 少妇激情偷公乱140章| GAI视频免费播放器| 天美麻花星空免费观看电视1| 退休后日大女儿的隐喻和含义| 见习修女| 免费网站在线观看人数在哪省| 女子监狱理伦A片| 男生把小因因放到女生困里视频 | 涂了春药的奶头被众人抡H漫画| 欧美《禁忌5》| 亲嘴还扔衣服