2010-12-18 2 views
0

나는 SharpPCap 라이브러리를 사용하여 패킷을 캡처 한 다음이를 분석하여 PacketArrivalEventHandler 함수에서 flv 비디오 주소를 찾습니다. 클래스의 주요 부분이 같다 :SharpPCap의 두 번째 LivePCapDevice가 작동하지 않습니까?

class addrdetector 
{ 
    private LivePCapDevice device; 
    private device_OnPacketArrival(object sender, CaptureEventArgs e) 
    { 
     /* some analysis and some output */ 
     if (match) 
     { 
      device.StopCapture(); 
      device.Close(); 
     } 
    } 
    public Analyse() 
    { 
     var devices = LivePcapDeviceList.Instance; 
     device = devices[2]; 
     device.OnPacketArrival += 
      new PacketArrivalEventHandler(device_OnPacketArrival); 
     device.Open(); 
     device.StartCapture(); 
    } 
} 

I는 프로그램 addrdector 2 개 인스턴스가 있다면, 첫 번째 인스턴스가 올바른 출력을 가지고 있지만, 두 번째는 출력이 없음. 두 번째 패킷을 캡처 할 수없는 것 같습니다.
동일한 주요 기능에서 2 개의 LivePCapDevice 인스턴스를 테스트했는데 제대로 작동합니다. 그들은 또한 2 EXE.s에서 일할 수 있습니다. 하지만 난 찾을 수 없습니다 왜 프로그램에서 충돌 ... 감사합니다 ~

답변

0

복제하려면 SharpPcap 소스와 예제를 살펴 것은

나는 순간 때문에에 정확한 예를 참조 할 수 없습니다 필자는 개발 컴퓨터에서 멀리 떨어져 있지만 추가 LivePcapDevice 인스턴스를 추가하는 방법에 대한 예가 있다는 것은 절대적으로 긍정적입니다.

불가능하지는 않지만 해결책은 직관적이지 않습니다. 사용하는 예제는 "CaptureMultipleFilters"라인을 따라 무언가라고 불립니다.

행운을 빈다. 가능한 한 빨리이 답변을 더 나은 데이터로 업데이트하겠습니다.

관련 문제