2010-12-18 85 views
0

我使用lib 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(); 
    } 
} 

如果我有addrdector的兩個實例程序中,首先具有正確的輸出,但第二個有沒有任何輸出。看起來第二個無法捕獲任何數據包。
我測試了LivePCapDevice在同一個主要功能的2個實例,他們正常工作。他們也可以在2個EXE中工作。但我不能找出爲什麼他們衝突的程序... 謝謝〜

回答

0

克隆SharpPcap源,並期待在例子

我不能在那一刻,因爲引用確切的例子我遠離了我的開發計算機,但我絕對肯定有一個如何添加其他LivePcapDevice實例的例子。

這並非不可能,但解決方案並不直觀。我認爲使用的示例被稱爲沿着「CaptureMultipleFilters」的行。

祝你好運,我會盡快用更好的數據更新這個答案。