Python——socketserver編程(客戶端/服務器)
阿新 • • 發佈:2018-12-25
put mixin cpc 包含 self. nec recv 實例 server
一、socketserver是標準庫中的高級模塊,它的目標是簡化很多多樣板代碼,是創建網絡客戶端和服務器所必須的代碼。(事件驅動)
二、模塊類
BaseServer :包含核心服務器功能和mix-in類的鉤子,可以用TCPServer或UDPserver創建類的實例
TCPserver/UDPserver:基礎的TCP/UDP服務器
UnixStereamServer/UnixDatagramServer:基於文件的TCP/UDP服務器
ForkingMixIn/ThreadingMixIn:核心派出或線程功能
ForkingTCPServer/ForkingUDPServer:ForkingMixIn和TCPServer/UDPServer的組合
ThreadingTCPServer/ThreadUDPServer:ThreadingMixIn和TCPServer/UDPServer的組合
BaseRequestHandler:處理服務請求的核心功能
StreamRequestHandler/DatagramRequestHandler:實現TCP/UDP服務器的服務處理
三、TCP服務器
from socketserver import TCPServer as TCP, StreamRequestHandler as SRH from time import ctime Host = "" Post = 21567 Addr = (Host,Post)class MyRequestHandler(SRH): def handle(self): print (‘...connectde from:‘,self.client_address) self.wfile.writr(‘[%s]%s‘%(ctime(),self.rfile.readline())) tcpServ = TCP(Addr,MyRequestHandler) print (‘waiting for connection ...‘) tcpServ.server_forever()
四、TCP客戶端
from socket import* Host = ‘localhost‘ Post = 21567 Bufsiz = 1024 Addr =(Host,Post) while True: tcpCliSock = socket(AF_INET,SOCK_STREAM) tcpCliSock.connect(Addr) data = raw_input(‘>‘) if not data: break tcpCliSock.Send(‘%s\r\n‘%data) data = tcpCliSock.recv(Bufsiz) if not data: break print (data.strip()) tcpCliSock.close()
Python——socketserver編程(客戶端/服務器)