# -*- coding: UTF-8 -*- import socketserver,json,os class MyTCPHandler(socketserver.BaseRequestHandler): def put(self,*args): ''' 接收客户文件 :return: ''' cmd_dic = args[0] filename = cmd_dic["filename"] filesize = cmd_dic["size"] if os.path.isfile(filename): f = open(filename,+ ".new",'wb') else: f = open(filename,'wb') self.request.send(b"200 OK") #服务端发送信息 recevied_size = 0 while recevied_size < filesize: data = self.request.recv(1024) #服务端接受信息 f.write(data) recevied_size += len(data) else: print("file [%s] is uploaded..."%filename) def handle(self): while True: try : self.data = self.request.recv(1024).strip() print("{} wrote:".format(self.client_address[0])) print(self.data) cmd_dic = json.loads(self.data.decode()) action = cmd_dic["action"] #得到 put.get..等 if hasattr(self,action): #判断是否有put方法 func = getattr(self,action) func(cmd_dic) #执行的是func(put) except ConnectionResetError as e: print(e) break if __name__ == "__main__": HOST, PORT = "127.0.0.1", 9999 server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) #修改的地方 server.serve_forever()