我正在使用Particle Photon微控制器并需要发送值>> 255通过TCP。我需要将其转换为uint8_t数组,以便我可以使用client.write((int8_t *data), int sizeof(packet));
我怎么能实现它?
答案 0 :(得分:0)
如果可能的话,选择一致的"字节顺序"对于您的数据 - " big endian"是典型的二进制网络协议 - 它用于IP,UDP,TCP等的头字段。
鉴于此,您可以使用htonX
系列函数将数据从主机格式(可能采用的格式)转换为网络格式,然后在收到时将ntohX
转换回来再次,例如:
uint32_t netword = htonl(data);
[在大端系统上,这些功能成为了#34; no-op" ]
编辑哦 - 我错过了微控制器'有点 - 你没有机会获得这些功能:(
答案 1 :(得分:-2)
使用了ScruffR在this帖子
上所说的内容EDIT 以前的版本实际上没有正常工作。 采用的解决方案,没有人(尽管投票不下)提供了
char buf[SIZEBUFF];
sprintf(buf,"%s",float2send);
sprintf(buf,"%ld",longInt2send);