zoukankan      html  css  js  c++  java
  • ftp服务端

    #coding=utf-8
    import SocketServer
    import json
    import os
    
    class MyTcpHandler(SocketServer.BaseRequestHandler):
        def handle(self):
            while True:
                try:
                    self.data = self.request.recv(1024).strip()
                    print '{} wrote:'.format(self.client_address)
                    print self.data
                    cmd_dict =  json.loads(self.data)
                    action = cmd_dict['action']
                    if hasattr(self,action):
                        funtion = getattr(self,action)
                        funtion(cmd_dict)
                    self.request.send(self.data.upper())
                except Exception as e:
                    print 'error',e
                    break
    
        def put(self,*args):
            cmd_dict = args[0]
            filename = cmd_dict['filename']
            filesize = cmd_dict['size']
            if os.path.isfile(filename):
                f = open(filename+'new','wb')
            else:
                f = open(filename,'wb')
            self.request.send('可以上传了')
            received_size= 0
            while received_size < filesize:
                data = self.request.recv(1024)
                f.write(data)
                received_size += len(data)
            else:
                '文件上传完成'
    
    
    
    if __name__ == '__main__':
        Host,Port = 'localhost',9999
        server = SocketServer.ThreadingTCPServer((Host,Port),MyTcpHandler)   #ThreadingTCPServer多线程并发 TCPServer为单发的
        server.serve_forever()
    
  • 相关阅读:
    poj 2251 Dungeon Master
    poj 2488 A Knight's Journey
    poj 3349
    poj 2442
    poj 3274 Gold Balanced Lineup
    优先队列
    广州华盟信息科技有限公司
    山东山大华天软件有限公司
    RvmTranslator6.5 is released
    PipeCAD之管道标准库PipeStd(2)
  • 原文地址:https://www.cnblogs.com/qiangayz/p/8613644.html
Copyright © 2011-2022 走看看