有人可以向我解释为什么这段代码偶尔会失败并且发送时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);
}
有什么想法吗?
答案 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或其他异常?