1. 程式人生 > >Python——socketserver編程(客戶端/服務器)

Python——socketserver編程(客戶端/服務器)

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編程(客戶端/服務器)