网络编程基础:asyncore、select与socket模块详解
1. asyncore模块概述
asyncore模块用于构建网络应用程序,其核心是通过事件循环异步处理网络活动。这种方式借助 select() 系统调用,能在不使用线程或进程的情况下实现并发,尤其适用于短事务处理,可提供较高性能。该模块的所有功能由 dispatcher 类提供,它是普通套接字对象的轻量级包装。
1.1 dispatcher类
dispatcher([sock]) 是定义事件驱动非阻塞套接字对象的基类。若 sock 参数省略,则需使用 create_socket() 方法创建套接字。创建后,网络事件由特殊的处理方法处理,所有打开的 dispatcher 对象会保存在内部列表中,供多个轮询函数使用。
1.1.1 处理网络事件的方法
以下是 dispatcher 类用于处理网络事件的方法,需在派生类中定义:
- d.handle_read() :当有新数据可从套接字读取时调用。
- d.handle_write() :尝试写入数据时调用。
- d.handle_expt() :接收到套接字的带外数据时调用。
- d.handle_connect() :建立连接时调用。
-
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



