在本文中,将介绍如何利用python中的socketserver模块来实现局域网通信,本文只介绍相应的方法而不介绍详细的设计。
SocketServer简化了网络服务器的编写。在进行socket创建时,使用SocketServer会大大减少创建的步骤,并且SocketServer使用了select它有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer。这4个类是同步进行处理的,另外通过ForkingMixIn和ThreadingMixIn类来支持异步。
使用SocketServer的步骤简介
- 首先,你必须创建一个请求处理类,它是BaseRequestHandler的子类并重载其handle()方法。也可以继承自socketserver.StreamRequestHandler 或者socketserver.DatagramRequestHandler ;
- 实例化一个服务器类,传入服务器的地址和请求处理程序类。
- 最后,调用handle_request()(一般是调用其他事件循环或者使用select())或serve_forever()。
代码实现
服务端
# encoding: utf-8
'''
Created on 2017-7-3
@author: lzmwhu
'''
import socketserver
#继承StreamRequestHandler类,并重写其中的handle方法,该方法是在每个请求到来之后都会调用