python--网络编程
一、socket模块:
在网络编程中一个基本组件就是一个套接字。
1、服务器套接字:(创建一个小型服务器)。
1、一个套接字就是socket模块中的socket类的一个实例。
2、gethostname():得到当前的主机名。
3、服务器端套接字通过调用bind方法后,再调用listen方法去监听某个特定的地址。
4、调用accept方法来接受客户端的连接。
2、客户端套接字(创建一个小型的客户机)
1、connect:连接到服务器。
2、recv:接受服务器数据。
二、urllib与urllib2模块:
1、打开远程文件urllib模块下的urlopen,urlopen返回一个能从中读取数据的类文件对象。。
2、获取远程文件urlretrieve,返回一个元组(filename,headers)
三、其他模块:
1、asyncore:异步套接字处理程序。
2、asynchat:asyncore增强版。
3、cgi:基本的CGI支持。
4、Cookie:Cookie对象操作,主要用于服务器。
5、cookielib:客户端cookie支持。
6、email:E-mail消息支持。
7、ftplib:FTP客户端模块。
8、gopherlib:gopher客户端模块。
9、httplib:HTTP客户端模块。
10、imaplib:IMAP4客户端模块。
11、mailbox:读取几种邮箱的格式。
12、mailcap:通过mailcap文件访问MIME配置。
13、mhlib:访问MH邮箱。
14、nntplib:NNTP客户端模块。
15、poplib:POP客户端模块。
16、robotparser:支持解析Web服务器的robot文件。
17、SimpleXMLRPCServer:一个简单的XML-RPC服务器。
18、smtpd:SMTP服务器模块。
19、smtplib:SMTP客户端模块。
20、telnetlib:Telnet客户端模块。
21、urlparse:支持解析URL。
22、xmlrpclib:XML-RPC的客户端支持。
四、创建SocketServer服务器实例:
1、SocketServer模块是标准库中很多服务器框架的基础,这些服务器框架包括BaseHTTPServer,SimpleHTTPServer,CGIHTTPServer,SimpleXMRPCServer和DocXMLRPCServer。
2、SocketServer包括4个基本类:TCPServer:针对TCP流式套接字。UDPServer:针对UDP数据报套接字。UnixStreamServer和UnixDatagramServer。
3、StreamRequestHandler类:创建两个新属性,self.rfile用于读取和self.wfile用于写入。
4、以下代码创建一个request handler class(请求处理类),继承BaseRequestHandler class并重写handle方法该方法将处理到请求。
server=TCPServer('',1234,Handler):实例化服务器对象。
server.serve_forever():开启服务。
五、实现异步,支持多个连接。
1、分叉(forking):利用多继承从ForkingMixIn和一个基本的服务类继承来定义一个支持异步的服务类。
比如:class Server(ForkingMixIn,TCPServer):pass
2、线程(threading):
3、带有select和poll的异步I/O
1、使用了select的简单服务器:
2、poll方法: