国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

利用Python中SocketServer 實現客戶端與服務器間非阻塞通信

2019-11-25 16:27:08
字體:
來源:轉載
供稿:網友

利用SocketServer模塊來實現網絡客戶端與服務器并發連接非阻塞通信。

首先,先了解下SocketServer模塊中可供使用的類:

BaseServer:包含服務器的核心功能與混合(mix-in)類掛鉤;這個類只用于派生,所以不會生成這個類的實例;可以考慮使用TCPServer和UDPServer。

TCPServer/UDPServer:基本的網絡同步TCP/UDP服務器。

UnixStreamServer/ UnixDatagramServer:基本的基于文件同步TCP/UDP服務器。

ForkingMixIn/ ThreadingMixIn:實現了核心的進程化或線程化的功能;作為混合類,與服務器類一并使用以提供一些異步特性;這個類不會直接實例化。

ForkingTCPServer/ ForkingUDPServer:ForkingMixIn和TCPServer/UDPServer的組合。

BaseRequestHandler:包含處理服務請求的核心功能。這個類只用于派生,所以不會生成這個類的實例可以考慮使用StreamRequestHandler或DatagramRequestHandler。

StreamRequestHandler/ DatagramRequestHandler:用于TCP/UDP服務器的服務處理工具。

下面我們正式進入主題,這里我們采用StreamRequestHandler和ThreadingTCPServer來實現客戶端與服務器并發連接非阻塞socket。

ThreadingTCPServer派生自ThreadingMixIn,主要實現核心的進程化合線程化功能。

StreamRequestHandler主要用于用于TCP/UDP服務器的服務處理工具。

一、創建SocketServerTCP服務端

[python] view plain copy#創建SocketServerTCP服務器: import SocketServer from SocketServer import StreamRequestHandler as SRH from time import ctime host = 'xxx.xxx.xxx.xxx' port = 9999 addr = (host,port) class Servers(SRH):  def handle(self):   print 'got connection from ',self.client_address   self.wfile.write('connection %s:%s at %s succeed!' % (host,port,ctime()))   while True:    data = self.request.recv(1024)    if not data:     break    print data    print "RECV from ", self.client_address[0]    self.request.send(data) print 'server is running....' server = SocketServer.ThreadingTCPServer(addr,Servers) server.serve_forever() 

二、創建SocketServerTCP客戶端

[python] view plain copyfrom socket import * host = 'xxx.xxx.xxx.xxx' port = 9999 bufsize = 1024 addr = (host,port) client = socket(AF_INET,SOCK_STREAM) client.connect(addr) while True:  data = raw_input()  if not data or data=='exit':   break  client.send('%s/r/n' % data)  data = client.recv(bufsize)  if not data:   break  print data.strip() client.close() 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 易门县| 斗六市| 铜梁县| 叙永县| 甘南县| 丰县| 福州市| 南江县| 大港区| 浮梁县| 宁都县| 平阴县| 尚志市| 镶黄旗| 青海省| 永春县| 无极县| 冕宁县| 西乌珠穆沁旗| 互助| 滨州市| 西青区| 方山县| 华容县| 台东市| 奇台县| 远安县| 台江县| 营口市| 贵州省| 望都县| 和田县| 乌兰浩特市| 灵宝市| 青冈县| 德州市| 微山县| 五寨县| 昂仁县| 揭西县| 吕梁市|