我有一个嵌入式设备,它以这种格式(日期为4个字节)向我发送UTC日期:
在服务器上,我正在接收字节并将它们存储在 `socket_buf` 中,从索引0-3开始,并使用以下逻辑进行解码。
但是我不确定我是否正确地解码了它,因为我得到的日期不正确。有人能建议我正确的解码方式吗?我正在使用Linux命令解码日期(16711840是我的解码数字)。
buffer.push_back((BYTE)(time_utc & 0x000000FF));
buffer.push_back((BYTE)((time_utc & 0x0000FF00) >> 8));
buffer.push_back((BYTE)((time_utc & 0x00FF0000) >> 16));
buffer.push_back((BYTE)((time_utc & 0xFF000000) >> 24));
在服务器上,我正在接收字节并将它们存储在 `socket_buf` 中,从索引0-3开始,并使用以下逻辑进行解码。
mypkt.dateTime = ( ( socket_buf[0] << 24) +
(socket_buf[1 ] << 16) + socket_buf[2] << 8) +
(socket_buf[3] << 0));
但是我不确定我是否正确地解码了它,因为我得到的日期不正确。有人能建议我正确的解码方式吗?我正在使用Linux命令解码日期(16711840是我的解码数字)。
#date -d @16711840
htons()
和ntohs()
? - jcxzsocket_buf
的声明,它可能是错误的原因。 - Lundin