美文网首页
02 python 服务器模块: SocketServer

02 python 服务器模块: SocketServer

作者: _Mirage | 来源:发表于2020-07-17 07:41 被阅读0次

    模块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客户端进行测试就行了。

    相关文章

      网友评论

          本文标题:02 python 服务器模块: SocketServer

          本文链接:https://www.haomeiwen.com/subject/mxswhktx.html