Question

Quelqu'un peut-il m'expliquer pourquoi ce code échoue de temps en temps avec une exception null pour udpLink lors de l'envoi?

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

Ceci est le nouveau code sur la façon dont je l'ai corrigé.

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

Des idées?

Était-ce utile?

La solution

Je ne suis pas sûr que ce soit le problème, mais j'imagine que c'est ainsi que vous utilisez votre déclaration using. Je le ferais comme ça:

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

Autres conseils

Selon que ce segment de code est ou non dans une boucle qui s'exécute des milliers de fois, vous risquez de ne pas avoir trop de connexions (parler par expérience). vous pouvez faire un netstat -an et s'il défile plus d'une seconde, cela pourrait être votre problème.

Je ne vois aucune raison pour laquelle vous devriez obtenir une exception de pointeur null sur udpLink. Vous êtes sûr que son udpLink est null et non rawMsg? De plus, vous êtes sûr de lancer une exception NullPointerException et non une exception SocketException ou une autre exception?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top