我正在编写一个套接字客户端 - 服务器应用程序,其中服务器需要向客户端发送一个大缓冲区,并且所有缓冲区都应该单独处理,所以我想将缓冲区长度放在缓冲区中,以便客户端可以读取数据长度从缓冲区和相应的过程.
要设置长度值,我需要将每个字节中的整数值除以一个字节,并将其存储在缓冲区中以通过套接字发送.我能够将整数分成四个部分,但在加入时我无法检索到正确的值.为了演示我的问题,我编写了一个示例程序,我将int分成四个char变量,然后将它连接回另一个整数.目标是加入后我应该得到相同的结果.
这是我的小程序.
#include <stdio.h>
int main ()
{
int inVal = 0, outVal =0;
char buf[5] = {0};
inVal = 67502978;
printf ("inVal: %d\n", inVal);
buf[0] = inVal & 0xff;
buf[1] = (inVal >> 8) & 0xff;
buf[2] = (inVal >> 16) & 0xff;
buf[3] = (inVal >> 24) & 0xff;
outVal = buf[3];
outVal = outVal << 8;
outVal |= buf[2];
outVal = outVal << 8;
outVal |= buf[1];
outVal = outVal << 8;
outVal |= …Run Code Online (Sandbox Code Playgroud)