码迷,mamicode.com
首页 > 其他好文 > 详细

文件处理客户端

时间:2020-01-03 21:23:12      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:pat   div   asa   def   ram   stream   cti   col   join   

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()

文件处理客户端

标签:pat   div   asa   def   ram   stream   cti   col   join   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!