python socket server库_Python之高级库socketserver

Python的socketserver库提供了一种简单的方法来创建网络服务,它封装了socket,支持多并发。socketserver包括服务类和请求处理类,通过创建自定义的请求处理类并继承BaseRequestHandler,实例化TCPServer来处理用户请求。本文介绍了socketserver的使用步骤,包括创建请求处理类、实例化服务器、处理请求,以及展示了简单的示例代码。
摘要由CSDN通过智能技术生成

socket并不能多并发,只能支持一个用户,socketserver 简化了编写网络服务程序的任务,socketserver是socket的在封装。socketserver在python2中为SocketServer,在python3种取消了首字母大写,改名为socketserver。socketserver中包含了两种类,一种为服务类(server class),一种为请求处理类(request handle class)。前者提供了许多方法:像绑定,监听,运行…… (也就是建立连接的过程) 后者则专注于如何处理用户所发送的数据(也就是事务逻辑)。一般情况下,所有的服务,都是先建立连接,也就是建立一个服务类的实例,然后开始处理用户请求,也就是建立一个请求处理类的实例。

1. Python之socketserver架构

a1d63462b0816bbc3758897c53c72dfc380.jpg

2. 如何创建一个socketserver

(1)创建一个请求处理的类,并且这个类要继承BaseRequestHandler,并且还要重写父类里handle()方法;

(2)你必须实例化 TCPServer,并且传递server IP和你上面创建的请求处理类,给这个TCPServer;

(3)server.handle_requese()#只处理一个请求,server.server_forever()处理多个一个请求,永远执行

(4)关闭连接server_close()

示例:SocketServer.py

#coding:UTF-8

'''socketserver模块实例'''

importsocketimportsocketserver

hostname=socket.gethostname()

ip=socket.gethostbyname(hostname)

ip_port= (ip, 1122)classMyhandler(socketserver.BaseRequestHandler):defhandle(self):print(ip_port)print(self.request, self.client_address, self.server)whileTrue:

data= self.request.recv(1024)print(len(data))if len(data) >0:print(data, self.client_address)

data1= data.decode("utf8").lower()print(data1)if data1 == "e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值