【发布时间】:2010-11-10 05:13:14
【问题描述】:
我正在编写一个应用程序来测试处理损坏数据的网络驱动程序。而且我想到了使用原始套接字发送这些数据,因此发送机器的 TCP-IP 堆栈不会更正它。
我仅在 Linux 上编写此应用程序。我有在系统调用中使用原始套接字的代码示例,但我真的很想保持我的测试尽可能动态,并用 Python 编写大部分(如果不是全部)。
我在网上搜索了一些关于在 python 中使用原始套接字的解释和示例,但没有发现任何真正有启发性的东西。只是一个非常古老的代码示例来演示这个想法,但绝不可行。
根据我的收集,Python 中的原始套接字使用在语义上与 UNIX 的原始套接字几乎相同,但没有定义数据包结构的 structs。
我想知道是否最好不要在 Python 中编写测试的原始套接字部分,而是在带有系统调用的 C 中编写,并从主要 Python 代码中调用它?
【问题讨论】:
标签: python sockets raw-sockets