使用 Twisted 的原始 UDP 数据包
我目前正在使用 Twisted 10.1 来接收和解析 UDP 数据包,但reactor.listenUDP() 的标准实现仅允许我访问数据包数据,并且我需要从 UDP 标头获取数据包长度。
我已经尝试过 Twisted 的 pairudp.py 示例,但失败了“导入错误:没有名为 eunuchs.tuntap 的模块”。对 python-eunuchs 进行 apt-cache 搜索没有任何结果,并查看 Ubuntu 的 软件包搜索,我可以看到,自 2006 年左右的 Dapper 以来,python-eunuchs 就不再是 Ubuntu 的一部分。
无论如何,Twisted Pair 项目本身都列在它的 twistedmatrix.com 页面未维护,所以我会非常犹豫是否要使用它的任何库来启动一个项目。
任何人都可以为我提供指导,甚至是一个(工作?)示例,说明如何使用 Twisted 10.1 / 10.2 执行此操作?
更新
正如 Glyph 指出的那样,我试图以一种可以简单解决的复杂方式解决问题。因为我可以使用 len(data) 获取数据包数据的长度,并且因为 UDP 的长度数据包头为8字节,totalSizeOfUdpPacket = 8 + len(data)。
*捂脸*
I'm currently using Twisted 10.1 to receive and parse UDP packets, but the standard implementation of reactor.listenUDP() only gives me access to the packet data, and I need to get the packet length from the UDP headers.
I've tried out Twisted's pairudp.py example, but it fails with an "ImportError: No module named eunuchs.tuntap". Doing an apt-cache search for python-eunuchs comes up with nothing, and looking at Ubuntu's package search, I can see that python-eunuchs hasn't been a part of Ubuntu since Dapper, circa 2006.
In any case, the Twisted Pair project itself is listed on it's twistedmatrix.com page as unmaintained, so I would be quite hesitant to start a project using any of it's libraries.
Can anyone provide me with pointers or even a (working?) example on how I can do this using Twisted 10.1 / 10.2?
Update
As Glyph pointed out, I'm trying to solve a problem in a complex manner that can be solved simply. Since I can get the length of the packet data using len(data), and since the length of a UDP packet header is 8 bytes, totalSizeOfUdpPacket = 8 + len(data).
*facepalm*
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如 Glyph 指出的那样,你试图以一种可以简单解决的复杂方式解决问题。由于可以使用 len(data) 获取数据包数据的长度,并且由于 UDP 数据包头的长度为 8 个字节,因此totalSizeOfUdpPacket = 8 + len(data)。
As Glyph pointed out, you're trying to solve a problem in a complex manner that can be solved simply. Since you can get the length of the packet data using len(data), and since the length of a UDP packet header is 8 bytes, totalSizeOfUdpPacket = 8 + len(data).