使用 Twisted 的原始 UDP 数据包

发布于 2024-10-21 15:52:09 字数 1012 浏览 5 评论 0原文

我目前正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

场罚期间 2024-10-28 15:52:09

正如 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文