NetworkStream превращается в null после конструктора

У меня есть класс TcpPeer который представляет TCP сторону при конвертации с другого способа передачи данных (для этого и нужен интерфейс IPeer). Но по неизвестной мне причине когда я вызываю read и write не из констуктора, то у меня вылетает NullReferenceException на строчке с использованием _stream

using System.Net.Sockets;
using System.Net;
using System.Text;
class TcpPeer : IPeer
{
    private TcpClient _client;
    private NetworkStream _stream;
    public TcpPeer(string ip, int port)
    {
        _client = new TcpClient(ip, port);
        _stream = _client.GetStream();
    }
    public byte[] Read()
    {
        byte[] data = new byte[8192];
        
        int len = _stream.Read(data, 0, data.Length);

        Array.Resize(ref data, len);
        return data;
    }
    public void Write(byte[] msg)
    {
        //и тут
        _stream.Write(msg, 0, msg.Length);
    }
}

interface IPeer
{
    byte[] Read();
    void Write(byte[] data);
}

Вот код с которым я смог воссоздать ошибку

var tcpPeer = new TcpPeer("127.0.0.1",85);
try
{
    tcpPeer.Write(Encoding.Unicode.GetBytes("Hello world"));
}
catch(Exception e)
{
    Console.WriteLine(e.ToString());
/*
System.NullReferenceException: Object reference not set to an instance of an object.
   at TcpPeer.Write(Byte[] msg) in 
   C:\CSharp\tcptest\tcptest\TcpPeer.cs:line 33
   at Program.Main() in C:\CSharp\tcptest\tcptest\Program.cs:line 13
*/

}

Ответы (0 шт):