• 0X04-Twisted Teactor TCP Server


    Twisted Teactor TCP Server

    #! /usr/bin/env python
    from twisted.internet import protocol,reactor
    from time import ctime
    '''
    这是一个时间戳TCP服务器,它使用了Twisted Internet类
    Twisted是用Python实现的基于事件驱动的网络引擎框架:https://www.cnblogs.com/silence-cho/p/9898984.html
    '''
    PORT = 21567
    '''
    1;reactor是twisted异步框架中的核心组件,是一个基于select,poll或epoll的事件循环,其监听socket的状态,当socket状态有变化时(有新的连接请求,或接受到数据等)时,调用相应的组件来进行处理。
    2;Factory: 主要用来创建protocol,也可以定义其他操作
    3;Protocol:主要用来处理连接建立和断开时的操作,以及数据的接受和发送操作
    
    '''
    class TSServProtocol(protocol.Protocol):
        def connectionMade(self):
            clnt = self.clnt = self.transport.getPeer().host
            print('...connected from:',clnt)
        def dataReceived(self, data):
            self.transport.write(data)
    
    factory = protocol.Factory()
    factory.protocol = TSServProtocol
    print('waiting for connection...')
    reactor.listenTCP(PORT,factory)
    reactor.run()
    
    '''
    英语翻译:
        1;protocol 协议
        2;reactor 反应器
    '''

    Twisted Teactor TCP Client

    #! /usr/bin/env python
    from twisted.internet import protocol,reactor
    
    HOST = 'localhost'
    PORT = 21567
    
    class TSClntProtocol(protocol.Protocol):
        def sendData(self):
            data = input('> ')
            if data:
                print("...sending %s..." % data)
                self.transport.write(data)
            else:
                self.transport.loseConnection()
    
        def connectionMade(self):
            self.sendData()
    
        def dataReceived(self, data):
            print(data)
            self.sendData()
    
    class TSClntFactory(property.ClientFactory):
        protocol = TSClntProtocol
        clientConnectionLost = clientConnectionFailed = lambda self ,connector,reason:reactor.stop()
    
    reactor.connectTcp(HOST,PORT,TSClntFactory())
    reactor.run()
  • 相关阅读:
    第3课 线性分类器损失函数与最优化
    李飞飞机器视觉课程笔记:第2课 K最近邻与线性分类器
    周志华《机器学习》第二章学习笔记
    通过anaconda安装tensorflow
    周志华《机器学习》第一章学习笔记 奥卡姆剃刀原理、没有免费的午餐定理(NFL)、回归模型
    DPM目标检测模型
    损失函数的理解
    mini-batch的理解
    前向传播、后向传播
    SVM(支持向量机)的理解
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12509661.html
Copyright © 2020-2023  润新知