Python 使用Twisted的原始UDP数据包

Python 使用Twisted的原始UDP数据包,python,udp,twisted,Python,Udp,Twisted,我目前使用Twisted 10.1来接收和解析UDP数据包,但是reactor.listenUDP()的标准实现只允许我访问数据包数据,我需要从UDP报头获取数据包长度 我已经尝试了Twisted的示例,但由于“ImportTerror:没有名为eunuchs.tuntap的模块”而失败。对python宦官进行apt缓存搜索,结果一无所获,看看Ubuntu,我可以发现python宦官从2006年左右的Dapper开始就没有加入Ubuntu 无论如何,Twisted Pair项目本身在它的页面上被

我目前使用Twisted 10.1来接收和解析UDP数据包,但是reactor.listenUDP()的标准实现只允许我访问数据包数据,我需要从UDP报头获取数据包长度

我已经尝试了Twisted的示例,但由于“ImportTerror:没有名为eunuchs.tuntap的模块”而失败。对python宦官进行apt缓存搜索,结果一无所获,看看Ubuntu,我可以发现python宦官从2006年左右的Dapper开始就没有加入Ubuntu

无论如何,Twisted Pair项目本身在它的页面上被列为未维护的,所以我会非常犹豫是否使用它的任何库来启动一个项目

有人能给我提供一些建议,甚至是一个(工作?)例子,说明我如何使用Twisted 10.1/10.2实现这一点吗

更新 正如Glyph所指出的,我试图以一种可以简单解决的复杂方式来解决问题。由于我可以使用len(数据)获得数据包数据的长度,并且a的长度是8字节,所以totalSizeOfUdpPacket=8+len(数据)


*facepalm*

正如Glyph所指出的,您试图以一种可以简单解决的复杂方式解决问题。由于您可以使用len(数据)获得数据包数据的长度,并且UDP数据包头的长度为8字节,TotalSizeOfudpacket=8+len(数据)。

为什么len(数据)不够?请在下面发布您的自我回答,因为这可能值得为其他人保留。这与给出的答案并不矛盾,但我想指出的是,我最近取消了对太监的依赖。Twisted Pair现在没有额外的依赖项(除了Twisted的依赖项)。twisted.pair.tuntap现在也有相当好的测试覆盖率,甚至还有一点文档。