Frage

Kann mir jemand erklären, warum dieser Code hin und wieder mit einem Null-Ausnahme für udpLink ausfällt, während das Senden?

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

Dies ist der neue Code auf, wie ich es festgelegt.

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

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob es wirklich das Problem ist, aber ich denke, es ist die Art und Weise, wie Sie die Anweisung using verwenden. Ich würde es tun, wie folgt:

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

Andere Tipps

Je nachdem, ob dieser Code-Segment ist in einer Schleife, die tausende Male führt Sie auf Verbindungen werden könnten maxing (aus Erfahrung). Sie können ein netstat -an tun, und wenn es für mehr als eine Sekunde Chancen scrollt sind, dass Ihr Problem sein könnte.

Ich sehe keinen Grund, warum Sie eine Null-Zeiger Ausnahme immer auf udpLink werden sollen. Sie sind sicher, dass sein udpLink der null und nicht rawMsg ist? Auch Sie sind sicher, dass Sie eine Nullpointer und nicht eine Socket oder andere Ausnahme werfen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top