Pergunta

Alguém pode me explicar por que este código falhar de vez em quando com uma exceção nula para udpLink durante o envio?

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

Este é o novo código de como eu fixa-lo.

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

Todas as idéias?

Foi útil?

Solução

Eu não tenho certeza se ele realmente é o problema, mas eu acho que é a maneira como você usa a instrução usando. Eu faria isso como este:

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

Outras dicas

Dependendo se ou não este segmento de código está em um loop que executa milhares de vezes que você pode ser estourar o limite em conexões (falando por experiência). você pode fazer um netstat e se desloca por mais de um segundo chances são de que poderia ser o problema.

Eu não vejo nenhuma razão pela qual você deve estar recebendo uma exceção de ponteiro nulo no udpLink. Você tem certeza de sua udpLink que é nulo e não rawMsg? Além disso, você tem certeza que está jogando um NullPointerException e não um SocketException ou outra exceção?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top