Twisted和ICMP(txNetTools)

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

+0

如果我从主/沙箱运行:ImportError:没有名为txnet.icmp的模块。我复制ping.py到1级达主文件夹 – Echeg 2012-02-23 17:47:52

+0

哦,我有坏的旧代码 – Echeg 2012-02-23 17:54:57

+0

我拉最新的主人,我仍然得到这个错误任何想法? – 2016-07-12 01:18:31