首页 > 其他 > 详细

解决粘包问题2服务端

时间:2020-01-03 20:11:04      阅读:77      评论:0      收藏:0      [点我收藏+]
from socket import *
import subprocess,struct,json
server=socket(AF_INET,SOCK_STREAM)
server.bind((‘127.2.2.2‘,6688))
server.listen(5)
while True:
    conn,client_addr=server.accept()
    print(client_addr)
    while True:
        try:
           cmd=conn.recv(1024)
           if not cmd:break
           obj=subprocess.Popen(cmd.decode(‘utf-8‘),shell=True,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE
                                )
           stdout=obj.stdout.read()
           stderr=obj.stderr.read()
           headers={‘filepath‘:‘a.txt‘,
                    ‘md5‘:‘123fvs54‘,
                    ‘total_size‘:len(stdout)+len(stderr)}
           headers_json=json.dumps(headers)
           headers_bytes=headers_json.encode(‘utf-8‘)
           conn.send(struct.pack(‘i‘,len(headers_bytes)))
           conn.send(headers_bytes)
           conn.send(stdout)
           conn.send(stderr)
        except ConnectionResetError:break
    conn.close()
server.close()

解决粘包问题2服务端

原文:https://www.cnblogs.com/0B0S/p/12146148.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!