gpt4 book ai didi

将 32 位网络命令转换为 C 中的主机

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:08 26 4
gpt4 key购买 nike

我正在尝试将 uint32_t 从网络字节顺序转换为主机格式。我正在从存储在缓冲区中的 4 个字节的 tcp 连接读取数据,如下所示:

ssize_t read = 0;
char *file_buf;
size_t fb_size = 4 * sizeof(char);
file_buf = malloc(fb_size);
read = recv(socket_file_descriptor,file_buf,fb_size,0);

所以我将数字存储在 file_buf 中,但我想要一个数字,我该怎么做?

最佳答案

这看起来很简单:

ssize_t read = 0;
uint32_t myInteger; // Declare a 32-bit uint.

// Pass a pointer to the integer, and the size of the integer.
read = recv(socket_file_descriptor,&myInteger,sizeof(myInteger),0);

myInteger = ntohl(myInteger); // Change from Network order to Host order.

关于将 32 位网络命令转换为 C 中的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55748113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com