0

我只需要将这样的十六进制发送到远程串行设备即可接受它。

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

181E

我可以远程登录到远程串行并发送该命令:

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));
4

3 回答 3

1

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

const char cmd[] = "181E";
err = write(socket, cmd, strlen(cmd)); 
于 2013-05-10T02:49:16.320 回答
0

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

于 2013-05-10T02:49:39.463 回答
0

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

于 2013-05-10T03:18:08.873 回答