草庐IT

twisted-iocpsupport

全部标签

python - twisted中tcp协议(protocol)数据丢失问题

我用twisted.internet模块写了一个基于tcp的服务器。这是一个高并发环境。我通常通过protocol.Protocol的实例发送数据,但我遇到了问题。一些tcp连接可能会因为超时而关闭,而且我似乎无法收到任何通知,所以我在关闭的连接中写入的数据可能会丢失。数据丢失问题可能是由其他方式引起的。有什么好的办法控制吗?(socket.send可以返回一个状态,transport.write好像没有返回) 最佳答案 这个问题不是Twisted特有的。如果您想知道数据已收到,您的协议(protocol)必须确认已收到数据。sen

python - 导入错误 : No module named 'twisted'

我是python的新手,我正在编写一个简单的TCP服务器Server.py,我正在尝试使用这行代码导入react堆来自twisted.internetimportreactor问题是当我运行代码时出现此错误/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5/Users/Nora/PycharmProjects/Server/Server.pyTraceback(mostrecentcalllast):File"/Users/Nora/PycharmProjects/Server/Server.py",line2

python - 如何从协议(protocol)外部发送 Autobahn/Twisted WAMP 消息?

我正在关注thegithubcode中的基本wamppubsub示例:此示例从类中发布消息:classComponent(ApplicationSession):"""Anapplicationcomponentthatpublishesaneventeverysecond."""def__init__(self,realm="realm1"):ApplicationSession.__init__(self)self._realm=realmdefonConnect(self):self.join(self._realm)@inlineCallbacksdefonJoin(self,

python - twisted 是构建多线程服务器的好选择吗?

我需要从数百个pop3电子邮件帐户中提取数据,并且我想构建一个强大的服务器来执行此操作。twisted是这类项目的不错选择吗?现在一个简单的原型(prototype)是从一个pop3帐户中提取,然后它会从多个帐户中提取,但这将是一个序列化过程。我想创建一个有多个线程的服务器,这样它就可以同时处理一些事情。 最佳答案 Twisted是一个用Python编写的事件驱动网络框架。它在很大程度上建立在异步和非阻塞特性之上,最适合开发利用这些特性的网络应用程序。它为无法提供异步非阻塞I/O的用例提供线程支持。这是基于这样一个事实,即大部分时间

python - ReactorNotRestartable 在使用 twisted 和 trial 启动两个等效的单元测试时

我有两个测试类(TrialTest1和TrialTest2)写在两个文件中(test_trial1.py和test_trial2.py)大部分相同(唯一的区别是类名):fromtwisted.internetimportreactorfromtwisted.trialimportunittestclassTrialTest1(unittest.TestCase):defsetUp(self):print("setUp()")deftest_main(self):print("test_main")reactor.callLater(1,self._called_by_deffered1

Python Twisted 与 Cmd 模块的集成

我喜欢Python的Twisted和Cmd.我想一起使用它们。我得到了一些工作,但到目前为止我还没有想出如何使制表符完成工作,因为我没有看到如何在Twisted的LineReceiver中立即接收制表键事件(不按Enter)。到目前为止,这是我的代码:#!/usr/bin/envpythonfromcmdimportCmdfromtwisted.internetimportreactorfromtwisted.internet.stdioimportStandardIOfromtwisted.protocols.basicimportLineReceiverclassCommandPr

Python IPC - Twisted、RabbitMQ、

我想用Python创建2个应该相互通信的应用程序。其中一个应用程序应该像服务器一样运行,第二个应用程序应该是客户端的GUI。它们可以在同一系统(同一台机器上)或远程和不同设备上运行。我想问你,我应该使用哪种技术-AMQP消息传递(如RabbitMQ),Twisted服务器(或Tornado)或ZeroMQ并将应用程序连接到它。将来我想进行某种身份验证等。我已经阅读了很多问题和文章(比如这篇文章:Whydoweneedtouserabbitmq),很多人都在说“rabbitmq和twisted是不同的”。我知道他们是。我真的很想知道这些差异以及为什么在这种情况下这些解决方案中的一个会优于

python - 控制 Twisted 的 react 器使其成为非阻塞的最佳方法是什么?

我不想运行reactor.run(),而是偶尔调用其他东西(我不知道,比如reactor.runOnce()或其他东西),同时维护我自己的主循环。是否有扭曲的最佳实践? 最佳答案 是的。最好的做法是,这是一个坏主意,你永远不需要这样做。它不适用于所有反应器,而且您当然不能有两个不同的库想要这样做。为什么要维护自己的主循环?很有可能,它类似于“我想使用PyGame”或“我正在编写一个GUI程序并且我想使用GTK的主循环”或“我在Blender中使用Twisted并且它有自己的事件处理”。如果是这种情况,您应该提出具体问题,因为每个问题

python - Python/Twisted 程序在 Windows 下验证 SSL 证书的正确方法是什么?

有没有办法让Python/Twisted程序完全利用InternetExplorer用来验证与HTTPS服务器的SSL连接的根证书列表?提供给ValidateSSLcertificateswithPython的答案非常有帮助,但示例代码通过读取Unix特定目录/etc/ssl/certs/*.pem获取根证书,我不清楚Windows的等价物是什么。 最佳答案 Windows等效项是“从您的Linux机器复制/etc/ssl/certs/*.pem”。Mac和Windows有不同的本地API来获取各自的证书存储,Twisted不直接支

python - 将基于 python-twisted 的代码移植到 scala : framework advice needed

我正在尝试将大量用python编写的代码移植到scala,我正在寻找关于选择哪种框架组合的意见。它本质上是一个RPC(基于自定义protobuf+xmlrpc)/HTTP服务器和客户端,它进行一些数据库保存和转换,但随后将rpc发送给不在重写范围内的工作人员。作为实现RPC堆栈的网络IO/基础,我使用的是netty。旧事物中的所有工作流都基于twisted的Deferred,要替换它,我目前正在考虑直接使用ChannelFuture,或者将其包装在scalaz.Promise或akka.Future中。我想,问题的一部分是-是否可以比手动处理回调更简单?我想,如果我选择这条路线,我可以