温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - TcpClient connecting but not getting data
c# modbus-tcp tcpclient

c# - TcpClient连接但未获取数据

发布于 2020-05-26 16:03:32

我使用Modbus协议将TcpClient连接到TCP设备。我在读取时遇到超时异常,或者如果我删除了超时,则直到我停止程序为止。但是我可以使用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")));
    }

在此处输入图片说明

查看更多

提问者
Clayton Harbich
被浏览
2
ATTA 2020-03-10 13:52

为“ var message”分配的值与您通过TCP Terminal发送的值不同。

尝试发送12个字节:

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