美文网首页Python小哥哥
python tornado TCPserver异步协程实例

python tornado TCPserver异步协程实例

作者: 我爱学python | 来源:发表于2019-04-20 19:42 被阅读0次

    项目所用知识点

    tornado

    socket

    tcpserver

    协程

    异步

    tornado tcpserver源码抛析

    在tornado的tcpserver文件中,实现了TCPServer这个类,他是一个单线程的,非阻塞的tcp 服务。

    为了与上层协议(在tornado中就是HTTPServer)交互,TCPServer提供了一个接口:handle_stream, 要求其子类必需实现该方法,该方法就是主要用来处理应用层逻辑的。

    我们可以通过下面代码倒入模块查看源码

    fromtornado.tcpserverimportTCPServer

    源码中给了好多解释,先把源码注释贴进来

    自己仔细看该类的其他方法

    通过方法名就能看出来,而且开头已经给出实例怎么去用,所以这个就不一一解释了,我自己的用法如下

    具体步骤来分析 一下

    TCPServer执行过程

    1.server = ProxyServer()创建tcpserver对象,该步骤仅仅做了一个初始化操作


    2.想都不要想肯定是开启socket

    步骤是执行server.listen(1234)的时候,

    3.看下listen里面有调用bind_sockets()方法,来看下该方法


    4.接下来执行的是add_sockets()方法


    可以看到里面调用了add_accept_handler方法,来我们进去看看该方法干啥了

    5.探析add_accept_handler方法


     欣欣然我们来到了最后一步

    6.IOLoop.current().start(),然我们看下源码


    这一步想了解更多去参考这篇文章http://www.cnblogs.com/MnCu8261/p/6730691.html

    代码实例

    目前公司有这么一个需求,iphonex--server--ue4,面对两个客户端,达到iphonex把数据给ue4,server起一个代理作用,需求大概就是这样,具体实现代码如下

    相关文章

      网友评论

        本文标题:python tornado TCPserver异步协程实例

        本文链接:https://www.haomeiwen.com/subject/xzglgqtx.html