Flask学习笔记之TCP(二)

网络分七层,由下往上分为物理层,数据链路层,网络层,传输层,协议会话层,应用层。HTTP属于应用层,TCP属于传输层。

TCP协议是基于服务器与客户端之间发生的。客户端发起请求,与服务器建立连接(一个服务器可以接受多个客户端的连接,一个客户端只能连接一台服务器),使上层网络数据的传输建立在“无差别”的网络之上。为了使得多进程通讯时不至于发生混乱,必须把端口号(16位)和IP(32位)结合起来使用,称为Socket。在整个网络中,这样一对48位的Socket进行的传输层通讯必须是唯一的。

socketserver创建一个TCP服务器

from socketserver import BaseRequestHandler, TCPServer

#继承BaseRequestHandler这个base class,并重定义handle()
class EchoHandler(BaseRequestHandler): 
    def handle(self): 
        print('Got connection from', self.client_address) 
       
        #self.request is the TCP socket connected to the client
        while True: 
            #8192代表每次读取8192字节
            msg = self.request.recv(8192) 
            if not msg: 
                break 
            self.request.send(msg)

if __name__ == '__main__': 
    #第一对参数是(host, port)
    serv = TCPServer(('', 20000), EchoHandler)       
    serv.serve_forever()

参考资料:
Python Cookbook
Python Doc: SocketServer Examples

你可能感兴趣的:(Flask学习笔记之TCP(二))