首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同时运行两个阻塞函数

同时运行两个阻塞函数
EN

Stack Overflow用户
提问于 2014-07-22 21:20:37
回答 1查看 146关注 0票数 0

我一直在开发一个网络嗅探应用程序,目前我正试图使其可远程运行。我使用twisted作为它的网络部分。本质上,我向嗅探器发送一个数据包,告诉它开始,然后在它应该停止时发送一个不同的数据包。

我遇到的问题是twisted的reactor.run()和send的sniff()函数都阻塞了,所以似乎不可能同时嗅探和发送嗅探到的数据。有什么既定的方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-23 00:02:03

是。您可能需要多线程管理API中的一个,比如twisted.internet.threads.deferToThread()

http://twistedmatrix.com/documents/current/api/twisted.internet.threads.html#deferToThread

您可以像这样使用它:

代码语言:javascript
运行
复制
def runScapy():
    d = reactor.deferToThread(scapy.sniff)
    d.addCallback(doSomethingWithSniffResult)

reactor.callWhenRunning(runScapy)
reactor.run()

..although我不熟悉scapy,也不知道这个接口是如何实际使用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24888546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档