我正在使用 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();
}
}
如果我在程序中有 2 个 addrdector 实例,则第一个实例具有正确的输出,但第二个实例没有任何输出。似乎第二个无法捕获任何数据包。
我在同一个主函数中测试了 2 个 LivePCapDevice 实例,它们工作正常。他们也可以在 2 个 EXE.s 中工作。但是我不知道为什么它们在程序中会发生冲突...谢谢~