zoukankan      html  css  js  c++  java
  • 文件处理客户端

    import socket,struct,json,os
    DOWNLOAD_DIR=r'D: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()
  • 相关阅读:
    Git的Patch功能
    Android系统进程Zygote启动过程的源代码分析
    Android深入浅出之Zygote
    Android Ams浅析
    Handle机制详解
    详解Android中AsyncTask的使用
    将博客搬至CSDN
    Titanium studio安装
    Titanium studio介绍
    Android WebView useragent
  • 原文地址:https://www.cnblogs.com/0B0S/p/12146628.html
Copyright © 2011-2022 走看看