Это странно, и я не могу найти кого-то еще с этой проблемой, поэтому я предполагаю, что я сумасшедший. Буду очень признателен за помощь!
Я использую методы BeginReceive () / EndReceive () в C # UdpClient для реализации асинхронного чтения. Я начинаю читать с:
void startReading() {
udpClient.BeginReceive(new AsynchCallback(asynchRead), null);
}
Метод asynchRead () выглядит следующим образом:
void asynchRead(IAsynchResult result) {
nextData = udpClient.EndReceive(result, ref anyIPEndPoint);
}
, где
private Byte[] nextData;
и
IPEndPoint andIPEndPoint = new IPEndPoint(IPAddress.Any, 0);
являются глобальными.
Позже я пытаюсь использовать 'nextData' следующим образом:
anotherMethod(nextData);
, который дает мне необработанное исключение нулевого указателя в anotherMethod (). Пока я все еще отлаживаю, я вижу, что в «nextData» есть данные, прежде чем я вызываю anotherMethod (), но в anotherMethod () переданная переменная равна нулю.
Я что-то здесь не так делаю?
Большое спасибо.
Edit:
anotherMethod () частично выглядит так:
void anotherMethod(Byte[] dataBytes) {
Byte[] data = new Byte[dataBytes.Length - 4]; <- this is where exception occurs
...
}