返回顶部
首页 > 资讯 > 后端开发 > Python >python 初次使用twisted
  • 485
分享到

python 初次使用twisted

pythontwisted 2023-01-31 07:01:14 485人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

以下程序均来自《python.UNIX和linux系统管理指南》用twisted实现检测tcp端口twisted_check_tcp_port.py #!/usr/bin/env Python from twisted.

以下程序均来自《python.UNIX和linux系统管理指南》

用twisted实现检测tcp端口


twisted_check_tcp_port.py
#!/usr/bin/env Python
from twisted.internet import Reactor, protocol
import sys
class PortCheckerProtocol(protocol.Protocol):
        def __init__(self):
                print "Created a new protocol"
        def connectionMade(self):
                print "Connection made"
                reactor.stop()
class PortCheckerClientFactory(protocol.ClientFactory):
        protocol = PortCheckerProtocol
        def clientConnectionFailed(self, connector, reason):
                print "Connection failed because", reason
                reactor.stop()
if __name__ == '__main__':
        host, port = sys.argv[1].split(':')
        factory = PortCheckerClientFactory()
        print "Testing %s" % sys.argv[1]
        reactor.connectTCP(host, int(port), factory)
        reactor.run()

运行结果:

[root@Centos python]# python twisted_check_tcp_port.py 127.0.0.1:80

Testing 127.0.0.1:80

Created a new protocol

Connection made

[root@centos python]# python twisted_check_tcp_port.py 127.0.0.1:8080

Testing 127.0.0.1:8080

Connection failed because [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionRefusedError'>: Connection was refused by other side: 111: Connection refused.

]


用twisted实现perspective broker

server端

twisted_perspectiv_broker.py
#!/usr/bin/env python
import os
from twisted.spread import pb
from twisted.internet import reactor
class PBDirLister(pb.Root):
        def remote_ls(self, directory):
                try:
                        return os.listdir(directory)
                except OSError:
                        return []
        def remote_ls_boom(self, directory):
                return os.listdir(directory)
if __name__ == '__main__':
        reactor.listenTCP(9876, pb.PBServerFactory(PBDirLister()))
        reactor.run()

client端

twisted_perspectiv_broker_client.py
#!/usr/bin/python env
from twisted.spread import pb
from twisted.internet import reactor
def handle_err(reason):
        print "an error occurred", reason
        reactor,stop()
def call_ls(def_call_obj):
        return def_call_obj.callRemote('ls', '/usr')
def print_ls(print_result):
        print print_result
        reactor.stop()
if __name__ == '__main__':
        factory = pb.PBClientFactory()
        reactor.connectTCP('localhost', 9876, factory)
        d = factory.getRootObject()
        d.addCallback(call_ls)
        d.addCallback(print_ls)
        d.addErrback(handle_err)
        reactor.run()

其中def_call_obj.callRemote('ls', '/usr') ls也可以换成ls_boom

运行结果:

运行服务端(如果正确,服务端不会打印任何东西)

[root@centos python]# python twisted_perspectiv_broker.py

运行客户端(正确运行会列出所要列出的目录,如果没有该目录则返回一个空列表)

[root@centos python]# python twisted_perspectiv_broker_client.py

['share', 'libexec', 'games', 'tmp', 'etc', 'lib', 'sbin', 'X11R6', 'kerberos', 'src', 'include', 'local', 'bin']


--结束END--

本文标题: python 初次使用twisted

本文链接: https://lsjlt.com/news/190777.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 初次使用twisted
    以下程序均来自《Python.UNIX和Linux系统管理指南》用twisted实现检测tcp端口twisted_check_tcp_port.py #!/usr/bin/env python from twisted....
    99+
    2023-01-31
    python twisted
  • 初次使用Eclipse下的Python编
    初次使用Eclipse下的Python编程       Python(KK 英语发音:/'paθɑn/, DJ 英语发音:/paiθn/),是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十...
    99+
    2023-01-31
    Eclipse Python
  • 使用python怎么设置初始化执行次数
    使用python怎么设置初始化执行次数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、解决方法定义一个类属性 init_flag 标记是否 ...
    99+
    2023-06-15
  • Python爬虫基础之初次使用scrapy爬虫实例
    项目需求 在专门供爬虫初学者训练爬虫技术的网站(http://quotes.toscrape.com)上爬取名言警句。 创建项目 在开始爬取之前,必须创建一个新的Scrapy项目。进入您打算存储代码的目录中,运行下列...
    99+
    2022-06-02
    Python scrapy框架 Python爬虫
  • oracle数据库中exp/imp之初次使用
        最近使用oracle9i时,遇到了数据库备份和恢复的问题,很多时候与exp和imp的命令使用有关。针对遇到的问题,简单的总结。    问题的背景,就是需要对某...
    99+
    2024-04-02
  • 初窥Python(一)——使用pymon
    Python 可以使用 pymongo 库方便的操作 MongoDB 。插播一句,MongoDB 不同于关系型结构的三层结构——database--> table --> record,它的层级为 database -->...
    99+
    2023-01-31
    初窥 Python pymon
  • 使用异步的twisted框架写入数据
    1.twisted框架介绍Twisted是用Python实现的基于事件驱动的网络引擎框架;Twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一样,...
    99+
    2023-06-02
  • Python的Twisted框架中使用Deferred对象来管理回调函数
    首先抛出我们在讨论使用回调编程时的一些观点: 激活errback是非常重要的。由于errback的功能与except块相同,因此用户需要确保它们的存在。他们并不是可选项,而是必选项。 不在错误的时...
    99+
    2022-06-04
    回调 函数 框架
  • 初学者怎么使用Python
    这篇文章主要讲解了“初学者怎么使用Python”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“初学者怎么使用Python”吧!1. 使用列表时列表允许存储各种数据类型的元素且不限制大小,尽管这...
    99+
    2023-06-16
  • Python dis 模块初步使用
    Python 代码先被编译为字节码后,再由Python虚拟机来执行字节码, Python的字节码是一种类似汇编指令的中间语言, 一个Python语句会对应若干字节码指令,虚拟机一条一条执行字节码指令, 从而完成程序执行。 Python ...
    99+
    2023-01-31
    模块 Python dis
  • 使用Python的Twisted框架编写非阻塞程序的代码示例
    先来看一段代码: # ~*~ Twisted - A Python tale ~*~ from time import sleep # Hello, I'm a developer and I m...
    99+
    2022-06-04
    示例 框架 代码
  • 在线数据库关系图设计工具 dbdiagram.io初次使用
    做概要设计,想要把关键数据视图采用数据库关系图表示一下,为了简单快速地把表设计并定义出来,我找了一个可以在线设计数据库关系图(database relationship diagram)且可以导出DDL SQL的工具——dbdiagram....
    99+
    2022-04-12
    在线数据库关系图设计工具 dbdiagram.io初次使用
  • IntelliJ IDEA 安装及初次使用图文教程(2020.3.2社区版)
    目录1.下载安装包2.进行安装3.Hello World的Java程序编写IntelliJ IDEA 安装及初次使用(2020.3.2社区版) 1.下载安装包   ...
    99+
    2024-04-02
  • JS利用 React.lazy 优化页面初次渲染
    目录一、需求背景二、代码分析三、技术实现1. 路由懒加载2. Prefetch 预获取一、需求背景 主站采用qiankun微前端方式嵌入新项目,qiankun会阻塞子应用资源加载,这...
    99+
    2024-04-02
  • 初窥Python(一)——使用pymongo连接MongoDB
    Python 可以使用 pymongo 库方便的操作 MongoDB 。插播一句,MongoDB 不同于关系型结构的三层结构——database--> table --> record,它的层级...
    99+
    2024-04-02
  • Python Matplotlib初阶使用入门教程
    目录0. 前言1. 创建Figure的两种基本方法1.1 第1种方法1.2 第2种方法2. Figure的解剖图及各种基本概念2.1 Figure2.2 Axes2.3 Axis2....
    99+
    2024-04-02
  • 使用Python的Twisted框架构建非阻塞下载程序的实例教程
    第一个twisted支持的诗歌服务器 尽管Twisted大多数情况下用来写服务器代码,但为了一开始尽量从简单处着手,我们首先从简单的客户端讲起。 让我们来试试使用Twisted的客户端。源码在twisted...
    99+
    2022-06-04
    实例教程 框架 程序
  • 实例解析Python的Twisted框架中Deferred对象的用法
    Deferred对象结构 Deferred由一系列成对的回调链组成,每一对都包含一个用于处理成功的回调(callbacks)和一个用于处理错误的回调(errbacks)。初始状态下,deffereds将由两...
    99+
    2022-06-04
    框架 实例 对象
  • Python深度学习之Pytorch初步使用
    目录一、Tensor二、Pytorch如何创建张量2.1 创建张量2.2 tensor与ndarray的关系2.3 常用api2.4 常用方法三、数据类型3.1 获取数据类型四、tensor的其他操作4.1 相加4....
    99+
    2022-06-02
    Python Pytorch python深度学习
  • python使用torch随机初始化参数
    目录1、从均匀分布中生成值2、分布N(mean, std)中生成值3、使用值val填充输入Tensor3.1、使用0,或者1 填充数据4、用单位矩阵填充二维输入张量5、其他常用的初始...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作