TcpClient подключается, но не получает данные - PullRequest
0 голосов
/ 10 марта 2020

У меня есть подключение TcpClient к устройству TCP по протоколу Modbus. Я получаю исключение тайм-аута при чтении или, если я удаляю тайм-аут, он уходит, пока я не остановлю программу. Но я могу использовать программу Tcp Terminal для получения данных. Что я делаю не так?

    static void Main(string[] args)
    {
        var client = new TcpClient("192.168.1.10", 502);
        var message = new byte[] { 0x00, 0x02, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02 };
        var stream = client.GetStream();
        stream.ReadTimeout = 3000;
        stream.Write(message, 0, message.Length);            
        var buffer = new byte[13];
        stream.Read(buffer, 0, 13);
        Console.WriteLine(buffer.Select(x => x.ToString("X")));
    }

enter image description here

1 Ответ

1 голос
/ 10 марта 2020

Присвоенное значение 'var message' не совпадает с тем, которое вы отправляете через Терминал TCP.

попытайтесь отправить 12 байтов:

var message = new byte[] { 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02 };
...