使用Twisted发送原始UDP数据包

3
我目前正在使用Twisted 10.1来接收和解析UDP数据包,但是reactor.listenUDP()的标准实现只给我访问数据包数据的权限,我需要从UDP头中获取数据包长度。
我尝试了Twisted的pairudp.py示例,但它会出现“ImportError:没有名为eunuchs.tuntap的模块”。使用apt-cache搜索python-eunuchs找不到任何内容,并查看Ubuntu的package search,我发现自Dapper以来(大约2006年),python-eunuchs就不再是Ubuntu的一部分。
在任何情况下,Twisted Pair项目本身被列在其twistedmatrix.com页面上作为未维护状态,因此我非常犹豫是否要开始使用其库来进行项目开发。
有人能否提供指针或甚至(有效的?)示例,告诉我如何使用Twisted 10.1 / 10.2完成此操作?

更新

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

*扇自己一个耳光*


为什么len(data)不够用? - Glyph
1
请在下面发布您的自我答案,因为这可能对其他人有用。 - detly
1
这并不是对给出答案的否认,但我想指出最近我已经移除了 eunuchs 依赖。Twisted Pair 现在没有额外的依赖(除了总体上的 Twisted)。twisted.pair.tuntap 现在也拥有相当好的测试覆盖率甚至一点点文档说明。 - Jean-Paul Calderone
1个回答

2

Glyph指出,你试图用复杂的方式解决一个可以简单解决的问题。由于你可以使用len(data)获取数据包数据的长度,并且由于UDP数据包头部的长度为8个字节,因此总的UDP数据包大小等于8 + len(data)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接