Python入门(二十五)——socketserver模块复习

1. socketserver模块简介

socketserver是将socket和threading模块封装起来实现并发服务的模块,此节只复习基本的使用方法,以及基于基本的使用方法,并结合类的基本知识理解整个过程时如何运行的。

2. 基本语法

主要变化是server端,用对象建立了n个服务器

# Author:AD
# Date:2020/3/9
import socketserver, time


class MyServer(socketserver.BaseRequestHandler):
    def handle(self):
        print('server is running'.center(50, '-'))
        print('server is:', self)

        conn = self.request
        print('client address is :', self.client_address)
        while True:
            data_bytes = conn.recv(1024)
            if not data_bytes: break
            print(data_bytes.decode('utf8'))
            print('waiting')
            time.sleep(0.5)
            conn.sendall(data_bytes)

        print('【server is closed】'.center(50, '-'))
        print('close server is:', self)
        conn.close()

my_server = socketserver.ThreadingTCPServer(('127.0.0.1', 8000), MyServer)
my_server.serve_forever()

3. 运行机制理解:

在这里插入图片描述
基于以上大类之间的继承关系来理解上一节的代码。

主程序中先执行init函数,然后再执行serve_forever(),详细分析见下图:
在这里插入图片描述
之后就是实例化自己创建的类的流程:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值