• 1、数据⼤⼩超出⼀次取⽤的量,就会存在缓存(buff)区域中,下次在读取数据的时候会被取出 • 服务器端1 ```python # 粘包 # 1、数据⼤⼩超出⼀次取⽤的量,就会存在缓存(buff)区域中,下次在读取数据的时候会被取出 import socket import subprocess s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # UDP下不会出现粘包问题 s.bind(('127.0.0.1',8080)) s.listen(5) while 1: conn, addr = s.accept() while 1: cmd = conn.recv(1024) ret = subprocess.Popen(cmd.decode('utf-8'), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) correct_msg = ret.stdout.read() error_msg = ret.stderr.read() conn.send(correct_msg + error_msg) ``` • 客户端1 ```python # 客户端 import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',8080)) while 1: cmd = input('>>>') s.send(cmd.encode('utf-8')) server_data = s.recv(1024) print(server_data.decode('gbk')) ``` • 2、在两次数据发送间隔过短的情况下,tcp会等待⾜够数据量⼀次发送 • 服务器端2 ```python # 服务端 import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',8080)) s.listen(5) conn,addr=s.accept() first_data=conn.recv(1024) print(f'1:{first_data.decode("utf-8")}') second_data=conn.recv(1024) print(f'2:{second_data.decode("utf-8")}') conn.close() s.close() ``` • 客户端2 ```python # 客户端 import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',8080)) s.send(b'hello') s.send(b'world') s.close() • 解决 • struct:将数据变为固定的⼆进制⼤⼩ import struct ret=struct.pack('i',54651620) print(ret,type(ret),len(ret)) un1=struct.unpack('i',ret) print(un1) # unpack得到的是一个元组 un2=struct.unpack('i',ret)[0] print(un2,type(un2)) ``` 最后修改:2021 年 11 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 ¥¥阿巴阿巴¥¥
12 条评论
果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】
新车首发,新的一年,只带想赚米的人
你的文章内容非常卖力,让人点赞。 https://www.4006400989.com/qyvideo/50006.html
《好莱坞百年百个明星》记录片高清在线免费观看:https://www.jgz518.com/xingkong/120844.html
你的文章让我感受到了无尽的欢乐,谢谢分享。 https://www.4006400989.com/qyvideo/30495.html
你的才华让人瞩目,期待你的更多文章。 https://www.yonboz.com/video/63355.html
你的文章让我感受到了正能量,非常棒! http://www.55baobei.com/BvaXDiNkGs.html
《尸忆2015》科幻片高清在线免费观看:https://www.jgz518.com/xingkong/103079.html
哈哈哈,写的太好了https://www.cscnn.com/
叼茂SEO.bfbikes.com
看的我热血沸腾啊
叼茂SEO.bfbikes.com