SocketServer,网络通信服务器,是Python标准库中的一个模块,其作用是创建网络服务器。SocketServer模块定义了一些类来处理诸如TCP、UDP、UNIX流和UNIX数据报之上的同步网络请求。
这里我们就简单的使用一下它其中的TCP并发功能:
这个是服务器
# coding: utf-8 # import socketserver # 使用方法: # 先写一个类 class MyServer(socketserver.BaseRequestHandler): def handle(self): # 固定是这个handle, # print('1234111') while 1: data = self.request.recv(1024) # 接收内容 print(self.client_address) # 这个是客户端的地址 print(data.decode('utf-8')) self.request.send(data.upper()) if __name__ == '__main__': # 创建一个基于tcp的对象 ''' 只要有客户端连接 就会自动交给自定义类中handle方法处理 ''' server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer) # 启动了一个基于tcp的服务端 server.serve_forever() # 启动该服务对象 让他永远启动
这个是客户端(和原来一样的)
# coding: utf-8 # 这个和原来的是一样的 import socket # 实例化 client = socket.socket() # 连接到服务器 client.connect(('127.0.0.1',8080)) while 1: client.send(input('>>').encode('utf-8')) # 对别人说话 data = client.recv(1024) print(data)这样一来,就实现了tcp并发的功能(之前写的tcp不能同时服务多个服务端,这次就解决了之前的问题)