Я использую Unity и .NET для создания отношений клиент-сервер TCP.Null Reference Исключение, когда объект четко определен
У меня на самом деле есть все, где я могу отправлять сообщения туда и обратно, но теперь я нахожусь в исключении NullReferenceException, которое заставило меня почесывать голову.
У меня есть функция в моем TCPClientListener в моем коде Unity, который вызывает ReadSocket каждый Update()
public void SetupSocket(){
socket = new TcpClient(host, port);
stream = socket.GetStream();
writer = new StreamWriter(stream);
reader = new StreamReader(stream);
socketReady = true;
}
public string ReadSocket(){
if(stream.DataAvailable){
return "New Data! " + reader.ReadLine().Replace("<EOF>", "");
}
return "";
}
выше не работает нормально, никаких проблем. Когда сервер отправляет сообщение, я получаю его просто отлично. Но затем я добавляю очень простой оператор if, и теперь я получаю NullReferenceException в отношении читателя.
public string ReadSocket() {
if (stream.DataAvailable) {
if (reader.ReadLine().Contains("<EOF>"))
return "New data! " + reader.ReadLine().Replace("<EOF>", "");
}
return "";
}
Надеюсь, что я слишком долго смотрел на это, чтобы увидеть очевидное. Почему
if (reader.ReadLine().Contains("<EOF>"))
дайте мне ошибку !? Если я удалю его, ошибки не будет.
Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- это) –