python网络编程<4>:SocketServer 模块

SocketServer 是标准库中一个高级别的模块。用于简化网络客户与服务器的实现。python

注意:在Python3中,本模块为socketserver模块。在Python 2中,本模块为SocketServer模块。因此在用import导入时,要分状况导入,不然会报错。服务器

SocketServer 模块的类网络

 

       类                 描述python2.7

   BaseServer               包含服务器的核心功能与混合(mix-in)类的钩子功能。这个类用于派生,异步

                       不要直接生成这个类的类对象,能够考虑使用 TCPServer 和UDPServer。 
TCPServer/UDPServer     基本的网络同步 TCP/UDP 服务器

UnixStreamServer/            基本的基于文件同步 TCP/UDP 服务器
UnixDatagramServer
ForkingMixIn/        实现了核心的进程化或线程化的功能,用于与服务器类进行混合(mix-in),以提供一些异步特性。 
ThreadingMixIn            不要直接生成这个类的对象
ForkingTCPServer/        ForkingMixIn 和 TCPServer/UDPServer 的组合
ForkingUDPServer
ThreadingTCPServer/    ThreadingMixIn 和 TCPServer/UDPServer 的组合
ThreadingUDPServer
BaseRequestHandler     包含处理服务请求的核心功能。只用于派生新的类,不要直接生成这个类的对象,
                                  能够考虑使用 StreamRequestHandler 或DatagramRequestHandler 
StreamRequestHandler/              TCP/UDP 服务器的请求处理类的一个实现
DatagramRequestHandler
 

如今写一个 SocketServerTCP 服务器:socket

服务器客户端:tcp

 1 # -*- coding: utf-8 -*-
 2 #!/usr/bin/env python
 3 
 4 from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH)
 5 from time import ctime
 6 
 7 host = ''
 8 port = 21567
 9 addr = (host,port)
10 
11 class MyRequestHandler(SRH):
12     def handle(self):
13         print('...connected from:',self.client_address)
14         self.wfile.write('[%s]%s'%(ctime(),self.rfile.readline))
15 
16 tcpServ = TCP(addr,MyRequestHandler)
17 print('waiting for connection...')
18 tcpServ.serve_forever()

客户端编写:测试

 1 # -*- coding: utf-8 -*-
 2 #!/usr/bin/env python
 3 
 4 from socket import *
 5 
 6 host = 'localhost'
 7 port = 21111
 8 BUFSIZ = 1024
 9 addr = (host,port)
10 
11 while True:
12     s = socket(AF_INET,SOCK_STREAM)
13     s.connect(addr)
14     data=raw_input('>>>>>')
15     if not data:
16         print('null')
17         break
18     s.send('%s\r\n'%data)
19     data = s.recv(1024)
20     if not data:
21         print('there is nothing.')
22         break
23     print (data.strip())
24 
25 s.close()

python2.75测试,服务端连上,客户端报出异常spa

相关文章
相关标签/搜索