SocketServer 模块 是标准库中一个高级别的模块。。用于简化时间网络客户端与服务器所必需的大量样板代码
包含的类有:
BaseServer :包含服务器的核心功能和混合(mix-in)类挂钩;这个类之用于派生,所以不会生成这个类的实例。。
TCPServer/UDPServer : 基本的网络同步TCP/UDP 服务器
BaseRequestHandler : 包含处理服务请求的核心功能,只用于派生,所以不会生成实例
StreamRequestHandler/DataGramrequestHandler 用于TCP/UDP 服务器的服务处理工具
#!/usr/bin/python
from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH)
from time import ctime
HOST=''
PORT=21567
ADDR=(HOST,PORT)
class MyRequestHandler(SRH):
def handle(self):
print '...connected from:',self.client_address
self.wfile.write('[%s] %s' % (ctime(),self.rfile.readline()))
tcpServ=TCP(ADDR,MyRequestHandler)
print 'waiting for connection...'
tcpServ.serve_forever()
这里 从 SocketServer 的StreamRequestHandler 类派生出一个子类,并重写handle 函数,在handle 函数中处理来自客户端的连接。。
下面是其他与网络套接字相关的Python 模块。select 模块通常在底层套接字程序中与socket 模块联合使用,它提供了select 函数,可以同时管理多个套接字对象,最有用的功能是同时监听多个套接字的连接.....select 函数会阻塞,知道有至少一个套接字准备好了要通讯的时候才退出。
socket 底层网络接口。
asyncore/asynchat :为能异步处理客户端请求的网路应用程序提供底层功能
select :在单线程网络服务器程序中,管理多个套接字
SocketServer 包含了为网络应用程序提供服务器的高级别模块。。