为什么我的UDPClient偶尔会为null

时间:2009-06-22 11:26:29

标签: c# exception network-programming udp

有人可以向我解释为什么这段代码偶尔会失败并且发送时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);
            }

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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