Почему Pcap.net У ReceivePacket задержка в 1000 мс?

#c# #pcap.net

#c# #pcap.net

Вопрос:

Я пытаюсь постоянно захватывать пакеты, используя Pcap.Net библиотеку и немедленно отвечайте на них.

Однако в методе существует длительное периодическое запаздывание ReceivePacket .

Я настроил секундомер перед получением пакета и остановил его после этого. Результаты показывают прошедшее время в 1000 мс. Я также проверяю адрес с помощью ping 1.1.1.3 -t.

 while (true)
{
    Packet p;

    Stopwatch sw = new Stopwatch();
    sw.Start();

    var res = nic.ReceivePacket(out p);
    sw.Stop();

    if (res == PacketCommunicatorReceiveResult.Ok)
    {
        Adapter.WriteToBuffer(p.ToArray());
    }

    Debug.WriteLine("Received Packet lag: "   sw.ElapsedMilliseconds.ToString("D"));
}
 

Это вывод:

 Received Packet lag: 1000
Received Packet lag: 0
Received Packet lag: 1000
Received Packet lag: 0
 

… и так далее.

Комментарии:

1. Вы указали время ожидания? Я думаю, что время ожидания по умолчанию составляет 1000 мс.

2. Пожалуйста, укажите, как вы инициализировали переменную nic.

3. Да! проблема была с моей инициализацией!