1. 程式人生 > >SocketServer 模塊

SocketServer 模塊

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 模塊