ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

60、事件驱动的套接字程序与CGI编程

60、事件驱动的套接字程序与CGI编程

事件驱动的套接字程序与CGI编程

1. 底层编程的复杂性与测试

在底层进行网络编程会带来诸多复杂问题,例如示例20 - 6及其数据结构就体现了这种复杂性。可以在终端窗口运行示例20 - 6的服务器,然后多次运行示例20 - 2。还可以在其他终端窗口使用telnet localhost 8881(或其他依赖平台的类似Telnet的程序)来验证长连接的行为。

2. asyncore和asynchat模块

asyncoreasynchat模块有助于实现异步网络服务器和客户端,其层次比select模块更高、更高效。

2.1 asyncore模块

asyncore模块提供了以下功能和类:
-loop()函数:实现异步事件循环,将所有网络事件分发给之前实例化的dispatcher对象。当所有dispatcher对象(即所有通信通道)关闭时,loop终止。
-dispatcher:提供了套接字对象的所有方法,以及用于事件驱动编程的特定方法,方法名以handle_开头。可以继承dispatcher类并重写handle_

返回列表