国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python Socket多線程并發原理及實現

瀏覽:114日期:2022-07-02 14:20:06
1.SocketServer模塊編寫的TCP服務器端代碼

 Socketserver原理圖

Python Socket多線程并發原理及實現

服務端:

import SocketServer #導入SocketServer,多線程并發由此類實現 class MySockServer(SocketServer.BaseRequestHandler): #定義一個類 def handle(self): #handle(self)方法是必須要定義的,可以看上面的說明 print ’Got a new connection from’, self.client_address while True: data = self.request.recv(1024) #需要通過self的方法調用數據接收函數 if not data:break print ’recv:’, data self.request.send(data.upper()) #需要通過self的方法調用數據接收函數 if __name__ == ’__main__’: #并非一定要用這樣的方式,只是建議這樣使用 HOST = ’’ #定義偵聽本地地址口(多個IP地址情況下),這里表示偵聽所有 PORT = 50007 #Server端開放的服務端口 s = SocketServer.ThreadingTCPServer((HOST, PORT), MySockServer) #調用SocketServer模塊的多線程并發函數 s.serve_forever() #持續接受客戶端的連接

客戶端:

import socket HOST = ’192.168.1.13’PORT = 50007s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((HOST, PORT)) while True: user_input = raw_input(’msg to send:’).strip() s.sendall(user_input) data = s.recv(1024) print ’Received’, repr(data) s.close() 2.基于Python Socketserver的實現的FTP程序

 服務端:

import socketserverimport structimport jsonimport osclass FtpServer(socketserver.BaseRequestHandler): coding=’utf-8’ server_dir=’file_upload’ max_packet_size=1024 BASE_DIR=os.path.dirname(os.path.abspath(__file__)) def handle(self): print(self.request) while True: data=self.request.recv(4) data_len=struct.unpack(’i’,data)[0] head_json=self.request.recv(data_len).decode(self.coding) head_dic=json.loads(head_json) # print(head_dic) cmd=head_dic[’cmd’] if hasattr(self,cmd):func=getattr(self,cmd)func(head_dic) def put(self,args): file_path = os.path.normpath(os.path.join( self.BASE_DIR, self.server_dir, args[’filename’] )) filesize = args[’filesize’] recv_size = 0 print(’----->’, file_path) with open(file_path, ’wb’) as f: while recv_size < filesize:recv_data = self.request.recv(self.max_packet_size)f.write(recv_data)recv_size += len(recv_data)print(’recvsize:%s filesize:%s’ % (recv_size, filesize))ftpserver=socketserver.ThreadingTCPServer((’127.0.0.1’,8080),FtpServer)ftpserver.serve_forever()

 客戶端:

import socketimport structimport jsonimport osclass MYTCPClient: address_family = socket.AF_INET socket_type = socket.SOCK_STREAM allow_reuse_address = False max_packet_size = 8192 coding=’utf-8’ request_queue_size = 5 def __init__(self, server_address, connect=True): self.server_address=server_address self.socket = socket.socket(self.address_family, self.socket_type) if connect: try:self.client_connect() except:self.client_close()raise def client_connect(self): self.socket.connect(self.server_address) def client_close(self): self.socket.close() def run(self): while True: inp=input('>>: ').strip() if not inp:continue l=inp.split() cmd=l[0] if hasattr(self,cmd):func=getattr(self,cmd)func(l) def put(self,args): cmd=args[0] filename=args[1] if not os.path.isfile(filename): print(’file:%s is not exists’ %filename) return else: filesize=os.path.getsize(filename) head_dic={’cmd’:cmd,’filename’:os.path.basename(filename),’filesize’:filesize} print(head_dic) head_json=json.dumps(head_dic) head_json_bytes=bytes(head_json,encoding=self.coding) head_struct=struct.pack(’i’,len(head_json_bytes)) self.socket.send(head_struct) self.socket.send(head_json_bytes) send_size=0 with open(filename,’rb’) as f: for line in f:self.socket.send(line)send_size+=len(line)print(send_size) else:print(’upload successful’)client=MYTCPClient((’127.0.0.1’,8080))client.run()

以上就是Python Socket多線程并發原理及實現的詳細內容,更多關于Python Socket多線程并發的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日本免费一区二区三区毛片 | 欧美 另类 精品一区视频 | 又黄又爽视频好爽视频 | 国内交换一区二区三区 | 欧美另类视频在线观看 | 成人国产精品一级毛片视频 | 久久免费视频8 | 国产99视频精品免视看9 | 成人a毛片免费视频观看 | 国产三级在线观看播放 | 日本一级大毛片a一 | 亚洲第一网站免费视频 | 玖草影院 | 欧美日韩精品一区二区三区高清视频 | 综合欧美一区二区三区 | 免费一级毛片在播放视频 | 寡妇一级毛片 | 亚洲人成在线精品 | 成人二区 | 欧美一级片在线 | 欧美精品v欧洲精品 | 国产亚洲人成网站观看 | 欧美毛片大全 | 亚洲天堂国产 | 美女张开腿让男生桶出水 | 国产激情久久久久久影院 | 美女被cao免费看在线看网站 | 免费人成网站在线播放 | 亚洲综合日韩精品欧美综合区 | 日韩一区二区三区四区不卡 | 99这里只有精品66视频 | 91色综合久久 | 欧美成 人h版在线观看 | 国产第一福利影院 | 一级片中文字幕 | 瑟瑟网站在线观看 | 欧美精品v日韩精品v国产精品 | 成人毛片网 | 欧美13一14sexvideo欧 | aa级毛片 | wwww亚洲|