首页 > 其他 > 详细

文件处理客户端

时间:2020-01-03 21:07:47      阅读:87      评论:0      收藏:0      [点我收藏+]
import socket,struct,json,os
DOWNLOAD_DIR=rD:\python13期\网络编程\文件处理\DOWNLOAD
class FtpClient:
    def __init__(self,host,port):
        self.host=host
        self.port=port
        self.client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        self.client.connect((self.host,self.port))
    def interactive(self):
        while True:
            data=input(>>:).strip()
            if not data:continue
            params=data.split()
            cmd=params[0]
            if hasattr(self,cmd):
                func=getattr(self,cmd)
                func(params)
    def get(self,params):
        params_json=json.dumps(params)
        self.client.send(params_json.encode(utf-8))
        headers_size = struct.unpack(i, self.client.recv(4))[0]
        headers_bytes = self.client.recv(headers_size)
        headers_json = headers_bytes.decode(utf-8)
        headers_dic = json.loads(headers_json)
        print(>>:, headers_dic)
        filename=headers_dic[filename]
        filesize=headers_dic[file_size]
        filepath=os.path.join(DOWNLOAD_DIR,filename)
        with open(filepath,wb)as f:
            recv_size = 0
            while recv_size < filesize:
                line=self.client.recv(1024)
                recv_size += len(line)
                f.write(line)
            print(>>:下载成功)
if __name__ == __main__:
    client=FtpClient(127.1.2.3,8999)
    client.interactive()

文件处理客户端

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

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