SocketServer 模塊
阿新 • • 發佈:2018-01-06
root data address sleep strip() 多個 str 方法 self.
SocketServer 模塊是一個基於 socket 模塊的高級別的套接字通訊模塊,用於簡化網絡客戶與服務器的實現,它支持使用多進程或多線程處理客戶端請求
[root@localhost ~]# cat socketserver.py #!/usr/bin/env python #-*- coding:utf-8 -*- import SocketServer class MyTCPHandler(SocketServer.BaseRequestHandler): # 定義一個類,並繼承BaseRequestHandler這個類 def handle(self): # 重寫handle方法,handle用來處理客戶端請求while True: self.data = self.request.recv(1024).strip() 2.接收客戶端請求 print(self.client_address[0]) print(self.data) self.request.sendall(self.data.upper()) 3.發送客戶端請求結果 if not self.data: break if __name__ == "__main__": HOST, PORT = "localhost", 1234 server = SocketServer.ThreadingTCPServer((HOST, PORT), MyTCPHandler) 1.創建一個TCP數據流的套接字(實現了多線程) server.serve_forever() # 表示主進程不退出,如果主進程退出了,線程也就退出了,因此該方法相當於一直運行服務端來接收客戶端請求,不退出
[root@localhost ~]# cat client.py #!/usr/bin/env python #-*- coding: utf8 -*- import time import socket s= socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((‘127.0.0.1‘, 1234)) while True: s.sendall(‘Hello World‘) data = s.recv(1024) print(data) time.sleep(1) s.close()
可以有多個客戶端連接,服務端會多線程處理
SocketServer 模塊