将2字节十六进制发送到远程序列

时间:2013-05-10 02:43:07

标签: c linux

我只需要将这样的十六进制发送到远程序列,设备就可以接受它。

我需要发送的2字节十六进制是:

181E

我可以telnet到远程串口并发送该命令:

telnet x.x.x.x port

181E

我得到了回复,这没关系。

如何在linux c中执行此操作?

我想使用写入功能。

err = write(socket,181E,2);

或者如何将2字节的十进制数存储到变量中,以便将其读取为181E?

int this_is_2_bytes = 181E; // Is this correct?

err = write(socket, this_is_2_bytes, sizeof(this_is_2_bytes));

3 个答案:

答案 0 :(得分:1)

您需要发送十六进制字符串。所以,

const char cmd[] = "181E";
err = write(socket, cmd, strlen(cmd)); 

答案 1 :(得分:0)

不,在所有系统上编写int都不正确。写一个双元素字节数组。

答案 2 :(得分:0)

write()函数需要一个指针作为第二个参数。将它存储在字符数组中。