TcpClient 连接但没有获取数据
TcpClient connecting but not getting data
我有一个使用 modbus 协议的 tcp 设备的 TcpClient 连接。我在读取时遇到超时异常,或者如果我删除超时,它会一直持续到我停止程序为止。但我可以使用 Tcp 终端程序来获取数据。我做错了什么?
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")));
}
分配给 'var message' 的值与您通过 TCP 终端发送的值不同。
尝试发送 12 个字节:
var message = new byte[] { 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02 };
我有一个使用 modbus 协议的 tcp 设备的 TcpClient 连接。我在读取时遇到超时异常,或者如果我删除超时,它会一直持续到我停止程序为止。但我可以使用 Tcp 终端程序来获取数据。我做错了什么?
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")));
}
分配给 'var message' 的值与您通过 TCP 终端发送的值不同。
尝试发送 12 个字节:
var message = new byte[] { 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02 };