我的问题只涉及C语言和Python中的套接字之间的性能差异.由于我的Python构建是CPython,我认为它是相似的,但我很好奇是否有人实际上有"真正的"基准,或者至少是一个基于证据的观点.
我的逻辑是这样的:
C socket快得多?然后写一个C扩展名.
不是/差别不大?继续用Python编写并弄清楚如何获取数据包级别控制(scapy?dpkt?)
我敢肯定有人会想知道上下文或好奇心.我计划为自己构建一种代理(不用于互联网浏览,匿名等),并将我想要使用的应用程序绑定到特定端口.然后,所述端口上的所有数据包将排队,修改地址头,然后发送等等.
提前致谢.
通常,Python中的套接字执行得很好.例如,BitTorrent跟踪器服务器的参考实现是用Python编写的.
在进行网络操作时,网络的速度通常是限制因素.也就是说,C和Python的套接字代码之间任何可能的微小差异都完全被你正在做某种网络的事实所掩盖.
但是,您对要执行的操作的描述表明您要检查和修改单个IP 数据包.这超出了Python标准网络库的功能,并且在任何情况下都是依赖于操作系统的操作.而不是问"哪个更快?" 你需要首先问"这可能吗?"