Twisted和ICMP(txNetTools)
问题描述:
几次我见过提到异步ping很好用。Twisted和ICMP(txNetTools)
我写线程实现(如Ping a site in Python?)
但在〜200个线程,我有美眉
在http://twistedmatrix.com/trac/wiki/ProjectsUsingTwisted页我觉得 txNetTools - 平,跟踪路由,ICMP等,在扭曲的实施,并为那些想建立自己的网络工具的人提供一个图书馆。
有没有人用过此图书馆?
我试图用它ping.py:
Traceback (most recent call last):
File "ping.py", line 23, in <module>
class Pinger(ICMP):
NameError: name 'ICMP' is not defined
如果变化:
class Pinger(**ICMP**):
到
class Pinger():
Traceback (most recent call last):
File "ping.py", line 54, in <module>
reactor.listenICMP(0, Pinger())
File "./txnet/reactor.py", line 21, in listenICMP
p.startListening()
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/udp.py", line 102, in startListening
self._connectToProtocol()
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/udp.py", line 123, in _connectToProtocol
self.protocol.makeConnection(self)
AttributeError: Pinger instance has no attribute 'makeConnection'
也许我做错了什么或不明白?
P.S.扭曲12.0
答
如果您正在运行sandbox/ping.py
,那么您报告的异常没有任何意义。该文件在开头处具有此导入:
from txnet.icmp import ICMP, Packet, ECHO_REQUEST
这定义了ICMP
名称。 Pinger
课程稍后介绍,扩展它。我可以成功运行此演示程序(尽管在处理系统上的响应时,它会因无法识别的消息类型而失败)。
也许你有一个老版本的代码,或者已经修改它,或者正在运行一个不同的ping.py
?
如果我从主/沙箱运行:ImportError:没有名为txnet.icmp的模块。我复制ping.py到1级达主文件夹 – Echeg 2012-02-23 17:47:52
哦,我有坏的旧代码 – Echeg 2012-02-23 17:54:57
我拉最新的主人,我仍然得到这个错误任何想法? – 2016-07-12 01:18:31