有人可以向我解释为什么这段代码偶尔会失败并且发送时udpLink会出现null异常吗?

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

这是我修复它的新代码。

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

有什么想法吗?

有帮助吗?

解决方案

我不确定这是不是问题,但我想这就是你使用using语句的方式。我会这样做:

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

其他提示

根据此代码段是否处于执行数千次的循环中,您可能会在连接上达到最大限度(从经验来讲)。你可以做一个netstat -an,如果它滚动超过一秒,那么这可能是你的问题。

我没有看到任何理由为什么你应该在udpLink上获得空指针异常。你确定它的udpLink是null而不是rawMsg吗?此外,您确定要抛出NullPointerException而不是SocketException或其他异常?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top