Я создал простое серверное приложение и проверил ваш клиентский код.У меня все отлично работает.Я бы посоветовал вам взглянуть на код сервера, чтобы дважды проверить, что он отправляет данные клиенту.Вы также можете использовать инструмент анализа пакетов, такой как WireShark, для проверки того, что данные также передаются.
Вот мой код сервера:
IPEndPoint maxPort = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234);
TcpListener listener = new TcpListener(maxPort);
listener.Start();
Socket socket = listener.AcceptSocket();
socket.Send(new byte[] { 1, 2, 3, 4, 5 });
socket.Close();
Если ваш сервер возвращает данные, вы можетехочу проверить заголовки TCP.Возможно, проблема в том, что бит PSH не установлен.Это заставит стек TCP не сигнализировать, что данные еще доступны.Я думаю об этом из-за того, что вы сказали, что Read
вызов не возвращается, а DataAvailable
постоянно возвращает false.
Надеюсь, это поможет.