首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python 内置标准库socketserver模块的思考

socketserver模块简化了编写网络服务器的任务, 在很大程度上封装了一些操作, 你可以看成是事件驱动型的设计, 这很不错。...这是socketserver模块设计的很好的地方, socketserver不仅仅有对socket原语操作的, 还有对需要进行具体处理的基类封装, 那就是BaseRequestHandler 类.举两个例子...找到python 的安装目录里面的wsgiref 文件夹, 我们分析下simple_server.py模块, 以及handlers.py模块。...注意下 simple_server.py模块的make_server 函数, 该函数的第五个参数就是自定义的请求处理类, 我们利用这个类来处理WSGI协议, 以实现服务器与python 应用程序之间的通信...最后做下总结吧, python两个内置的实现都是基于socketserver.py模块, 主要就是调用了BaseServer类与BaseRequestHandler类, 前者封装了基本的socket处理

16620
您找到你想要的搜索结果了吗?
是的
没有找到

Python通过socketserver处理多个链接

socket只能处理一个client连接,如果需要并发处理多个链接则需要使用socketserver,下面是代码示例以及注释 server端 import socketserver #之前的socket...只能同时处理一个客户端,当需要并发处理client发送的信息是需要使用到socketserver,下面创建一个类,继承socketserver其对应实例就有并发能力 class My_Tcp_Handler...(socketserver.BaseRequestHandler): #下面的handler是自己定义的server与client交互的过程,所有交互过程都在此方法内部实现.方法名handle是固定的...self.send_data) except ConnectionResetError as e: print("一个客户端关闭了连接") break #实例化socketserver...My_server = socketserver.ThreadingTCPServer(("0.0.0.0", 8888), My_Tcp_Handler) #ThreadingTCPServer是使用多线程

95921

九、python学习笔记-网络编程-socketserver

# socketserver """ 1、类式调用,实现socket功能 2、server端:服务端,监听指定端口,提供服务 3、client端:客户端,连接服务端,获取服务 """ 服务端 # 引入模块...import socketserver # 通过类式调用实现基于socket通信 """ 1、建立Mysocket类,父类是socketserver.BaseRequestHandler 2、重写父类方法...handle 3、调用Mysocket实际上就是执行handle方法 4、serve_forever()会在会话结束后重进进入阻塞状态,等待下次连接 """ class Mysocket(socketserver.BaseRequestHandler...')) # 关闭连接 conn.close() if __name__ == '__main__': # 实例化socket对象 server = socketserver.ThreadingTCPServer...# 初始化socket连接,进入等待状态 # serve_forever()会在会话结束后重进进入阻塞状态,等待下次连接 server.serve_forever() 客户端 # 引入模块

40531

socketserver实现并发

TCP协议的socket一次只能和一个客户端通信, 而socketsever可以时间和多个客户端通信. socketserver是在socket的基础上进行了一层封装, 它底层还是调用的socket....我们通过以下代码来看下socketserver如何使用: import socketserver # 引入模块 class Myserver(socketserver.BaseRequestHandler...): # 定义一个类, 继承socketserver模块中的BaseRequestHandler类 def handle(self): # # 写一个handle方法, 定死的(...其实基于TCP的套接字, 关键就是两个循环, 一个连接循环, 一个通信循环 socketserver模块中分为两大类: server类(解决连接问题) 和 request类(解决通信问题) server...以上面的代码中的代码为例, 分析socketserver源码: ip_port = ('127.0.0.1', 8008) server = socketserver.ThreadingTCPServer

86420

SocketServer源码学习(一)

SocketServer其实是对socket更高级的封装正如官网上说的: The socketserver module simplifies the task of writing network servers...我们可以先打开以下SocketServer的源码,看一下源码中整体的框架 ?...从上图我们可以看出SocketServer主要被抽象为两个主要的类: BaseServer类,用于处理连接相关的网络操作 BaseRequestHandler类,用于实际处理数据相关的操作 SocketServer...还提供了两个MixIn类:ThreadingMinxIn和ForkingMixinl 用于扩展server,实现多进程和多线程 下面从会从这几个主要的类开始做一个整体的分析,了解SocketServer...SocketServer的一个服务端的简单例子 直接上代码了: import socketserver class MyTCPHandler(socketserver.BaseRequestHandler

64570
领券