Perché il mio UDPClient è nullo di tanto in tanto
-
06-07-2019 - |
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?
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?