zoukankan      html  css  js  c++  java
  • python网络编程 之 twisted

    wisted 是一个完全事件驱动的网络框架。 它允许你使用和开发完全异步的网络应用程序和协议。 在写本书的时候,它还不是 Python 标准库的一部分,要使用它,你必需另外下载并安装它(在本章 最后能找到链接)。它为你创建一个完整系统提供了很大的帮助。系统中可以有:网络协议,线程, 安全和认证,聊天/即时通讯,数据库管理,关系数据库集成,网页/互联网,电子邮件,命令行参 数,图形界面集成等。

    使用 Twisted Internet 类的时间戳 TCP 服务器--客户端

     1 #encoding=utf-8
     2  #Twisted Reactor Timestamp TCP 客户端
     3 from twisted.internet import protocol,reactor
     4 
     5 host = 'localhost'
     6 port = 21567
     7 
     8 class TSCIntProtocol(protocol.Protocol):
     9     # 重写函数 connectionMade()和 dataReceived()。
    10     # 新加一个自己的函数 sendData(),用于在需要发送数据时调用
    11     def sendData(self):
    12         data = raw_input('>')
    13         if data:
    14             print 'sending %s ' %data
    15             self.transport.write(data)
    16         else:
    17             self.transport.loseConnection()
    18 
    19     def connectionMade(self):
    20         self.sendData()
    21 
    22     def dataReceived(self,data):
    23         print data
    24         self.sendData()
    25 
    26 class TSCIntFactory(protocol.ClientFactory):
    27     protocol = TSCIntProtocol
    28     clientConnectionLost = clientConnectionFailed = 
    29     lambda self,connector,reason:reactor.stop()
    30 
    31 reactor.connectTCP(host,port,TSCIntFactory())
    32 reactor.run()


     1 #encoding=utf-8
     2 from twisted.internet import protocol,reactor
     3 from time import ctime
     4 
     5 port = 21567
     6 
     7 class TSServProtocol(protocol.Protocol):
     8     #重写 connectionMade()函数,这个函数在有客户连接的时候被调用
     9     def connectionMade(self):
    10         clnt = self.clnt = self.transport.getPeer().host
    11         print 'connected from',clnt
    12 
    13     #dataReceived()函数,这个函数在客户通过网络发送数据过来时被调用。
    14     #reactor 把数据当成参数传到这个函数中,这样我们就不用自己去解析数据
    15     def dataReceived(self,data):
    16         self.transport.write('[%s] %s' % (ctime(),data))
    17 
    18 # 我们创建一个 protocol 工厂。它被称为“工厂”是因为,每次我们
    19 # 有连接进来的时候,它都会“生产”一个我们的 protocol 对象。
    20 factory = protocol.Factory()
    21 factory.protocol = TSServProtocol
    22 print 'waiting for connection'
    23 
    24 # 在 reactor 中安装一个 TCP
    25 # 监听器以等待服务请求。当有请求进来时,
    26 # 创建一个 TSServProtocol 实例来服务那个客户。
    27 reactor.listenTCP(port,factory)
    28 reactor.run()

     使用 Twisted Internet 类的时间戳 TCP 服务器--服务端

  • 相关阅读:
    yum配置163源
    sed
    Python3.6 提示 ModuleNotFoundError: No module named '_ssl' 模块问题
    django上传excel文件
    OpenStack Train版-7.neutron网络服务概述
    OpenStack Train版-6.安装nova计算服务(计算节点)
    OpenStack Train版-5.安装nova计算服务(控制节点)
    OpenStack Train版-4.安装placement放置服务
    OpenStack Train版-3.安装glance镜像服务
    OpenStack Train版-2.安装keystone身份认证服务
  • 原文地址:https://www.cnblogs.com/lovely7/p/5833604.html
Copyright © 2011-2022 走看看