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方法:

           

 

posted @ 2017-07-25 15:01  四平八稳  阅读(212)  评论(0编辑  收藏  举报