C# SharpPCap中的第二个LivePCAP设备没有';不行?

C# SharpPCap中的第二个LivePCAP设备没有';不行?,c#,sharppcap,C#,Sharppcap,我使用lib SharpPCap捕获数据包,然后分析它们,在PacketArrivalEventHandler函数中找到flv视频地址。课程的主要部分如下: class addrdetector { private LivePCapDevice device; private device_OnPacketArrival(object sender, CaptureEventArgs e) { /* some analysis and some outpu

我使用lib SharpPCap捕获数据包,然后分析它们,在PacketArrivalEventHandler函数中找到flv视频地址。课程的主要部分如下:

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的两个实例,它们工作正常。它们也可以在2exe.s中工作。但我不知道为什么他们在一个节目中发生冲突。。。
谢谢~

克隆SharpPcap源代码并查看示例

我目前无法引用确切的示例,因为我不在开发计算机旁,但我绝对肯定有一个示例说明如何添加其他LivePcapDevice实例

这并非不可能,但解决方案并不直观。我认为使用的例子叫做“CaptureMultipleFilters”


祝你好运,我会尽快用更好的数据更新这个答案。

Nameproject:MultipleFiltersOnDevice

代码如下:

var device1 = CaptureDeviceList.Instance[i];
var device2 = CaptureDeviceList.New()[i]; // NOTE: the call to New()
它对我有用