2014-07-22 6 views
0

저는 원격으로 실행 가능하도록 만들고자하는 네트워크 스니핑 응용 프로그램에서 작업 해 왔습니다. 나는 그것의 네트워킹 부분을 위해 트위스트를 사용하고 있습니다. 본질적으로, 나는 그것을 시작하라는 스니퍼에게 패킷을 보내고, 멈추어야 할 때 다른 패킷을 보냅니다.한 번에 두 개의 차단 기능 실행

내가 겪어 본 문제는 twisted의 reactor.run()과 scapy 's sniff() 함수 블록이 모두 스니핑되어 동시에 스니핑 된 데이터를 보내는 것이 불가능한 것입니다. 이것을하기위한 몇 가지 확립 된 방법이 있습니까?

+0

[this] (https://github.com/hellais/txscapy)일까요? 매우 오래된 것으로 보입니다. 그래서 실제로 작동하는지 모르겠습니다. – dano

+0

미안하지만, 그게 내가 원하는 건 아니야. 이것은 scapy를 사용하여 차단하지 않는 패킷을 만든 다음 뒤틀린 상태로 전송합니다. 동시에 패킷을 냄새 맡고 보낼 수있는 방법을 찾고 있습니다. – Magitrek

답변

0

예. 당신은 그것을 사용할 수

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

좋아 : 당신은 아마 같은 twisted.internet.threads.deferToThread()와 같이 다중 스레드 관리 API 중 하나 싶어 내가 scapy 나는 돈에 익숙하지 않다 ..although

def runScapy(): 
    d = reactor.deferToThread(scapy.sniff) 
    d.addCallback(doSomethingWithSniffResult) 

reactor.callWhenRunning(runScapy) 
reactor.run() 

인터페이스가 실제로 어떻게 사용되는지 알지 못합니다.

관련 문제