#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. Да! проблема была с моей инициализацией!