个人理解:
个人感觉socketserver其实就是为服务端专门提供的一个用于解决多用户并发访问需求的一个模块
小试牛刀:
服务端socketserver_server.py
1 import socketserver 2 ''' socketserver_server.py 3 要使用socketserver实现服务器端代码编写需遵循的三步: 4 1.自己创建一个请求处理类,该类要继承BaseRequestHandler,且还要重写父类的handle() 5 2.实例化TCPServer(UDPServer),并传递server ip和上边创建的请求处理类给这个TCPServer(UDPServer) 6 3.调用实例的handle_request() or serve_forever()来分别处理一个请求或多个请求 7 ''' 8 #请求处理类 9 class Mysocket(socketserver.BaseRequestHandler): 10 #重写父类的handle() 11 def handle(self): 12 while True: 13 try: 14 self.data = self.request.recv(1024).strip() 15 print(self.data.decode()) 16 data = '收到消息'.encode() 17 self.request.send(data) 18 except ConnectionResetError as e: 19 print('error occured:',e) 20 break 21 if __name__ == '__main__': 22 #指定服务器ip 23 Host,Port = 'localhost',9999 24 server = socketserver.TCPServer((Host,Port),Mysocket) 25 server.serve_forever()
客户端socketserver_client.py
1 import socket 2 3 ''' 4 socketserver_client.py 5 客户端和socket编程的客户端样,用到socket 6 ''' 7 client = socket.socket() 8 client.connect(('localhost',9999)) 9 while True: 10 mes = input(">>:").strip() 11 if len(mes) == 0: 12 continue 13 client.send(mes.encode()) 14 respose_data = client.recv(1024) 15 print(respose_data.decode())