Sockets: a veces (raramente) se pierden paquetes durante la recepción de

Estoy usandoSocket para recibir datos de udp multicast. El código es trivial:

s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
....
while (true)
{
    int count = 0;
    try
    {
        count = socket.Receive(byteArray);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        return;
    }
    if (count > 0)
    {
        OnNewMessage(new NewMessageEventArgs(byteArray, count));
    }
}

El problema es que a veces pierdo paquetes. No con demasiada frecuencia, ~ una vez cada 2 minutos.

Estoy seguro de que llegó el paquete porque puedo verlo en otro programa C ++ lanzado en la misma computadora y configurado para recibir los mismos paquetes.

¿Por qué mi programa no puede atrapar paquetes que otros pueden? ¿Por qué pierdo paquetes? ¿Es posible que la computadora sea demasiado lenta (u demasiado ocupada) para recibir paquetes?

Recibo alrededor de 2 000 paquetes por segundo y con el procesador Xeon E3, creo que debería ser más que suficiente ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta