socketserver

基于TCP的套接字,关键就是两个循环,一个链接循环,一个通信循环

socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题)

server类:

request类:

继承关系:

分析socketserver源码:

ftpserver=socketserver.ThreadingTCPServer(('127.0.0.1',8080),FtpServer)

ftpserver.server_forever()

查找属性顺序:ThreadingTCPServer->ThreadingMixln->TCPSever->BaseServer

源码分析总结:

基于TCP的socketserver我们自己定义的类中:

  1.self.server即套接字对象

  2.self.request即一个链接

  3.self.client_address即客户端地址

基于udp的socketserver我们自己定义的类中:

  1.self.request是一个元组(第一个元素是客户端发来的数据,第二部分是服务端的udp套接字对象),如(b'adsf',<socket.socket fd=200,family=AddressFamily.AF_INET,type=Socket.SOCK_DGRAM,proto=0,laddr=('127.0.0.1',8080)>)

  2.self.client_address即客户端地址

-------------------------------------------------------------END----------------------------------------------------------------

原文地址:https://www.cnblogs.com/gz369521/p/6813612.html