zoukankan      html  css  js  c++  java
  • 文件处理服务端

    import socket,os,json,struct
    SHARE_DIR=r'D:python13期网络编程文件处理SHARE'
    class FtpServer:
        def __init__(self,host,port):
            self.host=host
            self.port=port
            self.server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
            self.server.bind((self.host,self.port))
            self.server.listen(5)
        def serve_forever(self):
            print('server starting...')
            while True:
                self.conn,self.client_addr=self.server.accept()
                print(self.client_addr)
                while True:
                    try:
                        data=self.conn.recv(1024)
                        if not data:break
                        params=json.loads(data.decode('utf-8'))
                        cmd=params[0]
                        if hasattr(self,cmd):
                            func=getattr(self,cmd)
                            func(params)
                        else:
                            print('33[45mcmd not exists33[0m')
                    except ConnectionResetError:break
                self.conn.close()
            self.server.close()
        def get(self,params):
            filename=params[1]
            filepath=os.path.join(SHARE_DIR,filename)
            if os.path.exists(filepath):
                headers = {'filename': filename,
                           'md5': '123fvs54',
                           'file_size': os.path.getsize(filepath)}
                headers_json = json.dumps(headers)
                headers_bytes = headers_json.encode('utf-8')
                self.conn.send(struct.pack('i', len(headers_bytes)))
                self.conn.send(headers_bytes)
                with open(filepath,'rb')as f:
                    for line in f:
                        self.conn.send(line)
        def put(self):
            pass
    if __name__ == '__main__':
        server=FtpServer('127.1.2.3',8999)
        server.serve_forever()
  • 相关阅读:
    均匀采样单位圆
    3Sum
    查看SQL语句在SQL Server上的执行时间
    ASP.NET页面请求处理
    原型模式
    ASP.NET页面错误处理
    电子商务推荐位商品模型设计
    HttpModule与HttpHandler使用
    装饰者模式
    ASP.NET编程模型
  • 原文地址:https://www.cnblogs.com/0B0S/p/12146623.html
Copyright © 2011-2022 走看看