模块SocketServer是标准库提供的服务器框架的基础。
SocketServer包含4个基本的服务器: TCPServer(支持TCP套接字流【最常用】),UDPServer(支持UDP套接字流),以及UnixStreamServer和UnixDatagramServer。
基于SocketServer的极简服务器:
# coding=utf-8
from socketserver import TCPServer, StreamRequestHandler
# 每当服务器接收到客户端的连接请求时,都会实例化一个请求处理程序,并对其调用各种处理方法.
# 其中基本请求处理程序类BaseRequestHandler将所有操作都放在一个方法: Handler中.
# 由于我们处理的是流对象(TCP), 我们可以用StreamRequestHandler类
class Handler(StreamRequestHandler):
def handle(self):
addr = self.request.getpeername()
print(f'来自{addr}的请求..')
# hander方法包含wfile和rfile两种(前者用来读取, 后者用来写入)
self.wfile.write(bytes('谢谢你的连接...', 'utf-8'))
# 服务器绑定本地IP, 端口1234, 处理程序为Handler类
server = TCPServer(('', 1234), Handler)
# 服务器理论上一直运行
print('等待客户端连接中....')
server.serve_forever()
客户端:用前面基础的socket客户端进行测试就行了。
网友评论