Domanda

Qualcuno può spiegarmi perché questo codice fallisce di tanto in tanto con un'eccezione nulla per udpLink durante l'invio?

            udpLink = new UdpClient(ipAddress, 514);
            using (udpLink)
            {
                  udpLink.Send(rawMsg, rawMsg.Length);
            }

Questo è il nuovo codice su come l'ho corretto.

            udpLink = new UdpClient(ipAddress, 514);
            using (udpLink)
            {
                  if (udpLink != null) udpLink.Send(rawMsg, rawMsg.Length);
            }

Qualche idea?

È stato utile?

Soluzione

Non sono sicuro che sia davvero il problema, ma immagino sia il modo in cui usi l'istruzione using. Lo farei così:

using (UdpClient udpLink = new UdpClient(ipAddress, 514))
{
    udpLink.Send(rawMsg, rawMsg.Length);
}

Altri suggerimenti

A seconda che questo segmento di codice si trovi o meno in un ciclo che viene eseguito migliaia di volte, si potrebbe ottenere il massimo dalle connessioni (parlando per esperienza). puoi fare un netstat -an e se scorre per più di un secondo è probabile che questo sia il tuo problema.

Non vedo alcun motivo per cui dovresti ricevere un'eccezione puntatore null su udpLink. Sei sicuro che il suo udpLink sia nullo e non rawMsg? Inoltre, sei sicuro di lanciare una NullPointerException e non una SocketException o altre eccezioni?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top