类型
-
socketserver有几种类型:
class socketserver.TCPServer:用于TCP
class socketserver.UDPServer:用于UDP
class socketserver.UnixStreamServer:用于Unix的TCP
class socketserver.UnixDatagramServer:用于Unix的UDP
TCPServer继承了BaseServer
UnixStreamServer继承了TCPServer
-
创建socket server至少分以下几步:
1、必须创建一个请求处理类,并且这个类要继承BaseRequestHandler,还要重写父类里的handle方法(跟客户端所有的交互都是在handle中写的)。
2、必须要实例化一个协议server(如TCPServer),并且传递server ip和你上面创建的请求处理类,给这个TCPServer(实例化的时候将IP和请求处理类传给TCPServer)。
3、然后可以根据上面的实例来处理请求:
server.handle_request() #只处理一个请求
server.handle_forever() #处理多个请求,永远执行(一般都是用这个)
4、调用server_close()去关闭
server端:
import socketserver
class MyTCPHandler(socketserver.BaseRequestHandler):
'''第1步:创建处理类,继承Base。 客户端每一次请求过来都会实例化这个类'''
def handle(self):
'''第1步:重写handle方法,handle默认存在父类中代码是空的。 客户端所有交互都在handle中完成'''
while True: #使其可以循环发送数据
self.data = self.request.recv(1024).decode().strip()