【发布时间】:2011-03-11 18:17:25
【问题描述】:
我目前正在使用 Twisted 10.1 来接收和解析 UDP 数据包,但是 reactor.listenUDP() 的标准实现只允许我访问数据包数据,并且我需要从 UDP 标头中获取数据包长度。
我已经尝试过 Twisted 的 pairudp.py 示例,但它失败并显示“ImportError:没有名为 eunuchs.tuntap 的模块”。对 python-eunuchs 进行 apt-cache 搜索一无所获,并且查看 Ubuntu 的 package search,我可以看到自大约 2006 年 Dapper 以来,python-eunuchs 就没有成为 Ubuntu 的一部分。
无论如何,Twisted Pair 项目本身在其twistedmatrix.com 页面上列为未维护,因此我会非常犹豫是否要使用它的任何库启动项目。
任何人都可以向我提供有关如何使用 Twisted 10.1 / 10.2 执行此操作的指针甚至(工作?)示例吗?
更新
正如 Glyph 指出的那样,我正在尝试以一种可以简单解决的复杂方式来解决问题。由于我可以使用 len(data) 获取数据包数据的长度,并且由于 UDP packet header 的长度为 8 个字节,因此 totalSizeOfUdpPacket = 8 + len(data)。
*掌心*
【问题讨论】:
-
为什么 len(data) 不够用?
-
在下面发布您的自我回答,因为它可能值得为其他人保留。
-
这与给出的答案并不矛盾,但我想指出我最近删除了太监依赖。 Twisted Pair 现在没有额外的依赖项(除了那些 Twisted 总体上的依赖项)。 twisted.pair.tuntap 现在也有很好的测试覆盖率,甚至还有一点文档。