gpt4 book ai didi

将大缓冲区复制到小缓冲区的 block 中

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:36 24 4
gpt4 key购买 nike

我有一个已知大小的巨大缓冲区。我需要复制它的 block 以通过套接字发送到服务器。为此,我试图一次复制 1024 个字节,然后发送。

这里的问题是,我不知道缓冲区的内容。它可以是字符串或二进制。它应该可以处理缓冲区中包含的所有数据。

这是我编写的代码,但它当然不起作用。这只是一个小测试代码,我首先使用一个字符串。稍后我想用一些二进制等来测试它。但首先我必须正确理解指针概念!

int main(int argc, char *argv[]){

char hexstr [] = { 0x02, 0x01, 0x03, 0x04, 0x05, 0x06};
//trying with a string
char Bbuf [20]= "Hihelloohowareyou?";
FillBuffer( Bbuf,sizeof(Bbuf));

return 0;
}


int FillBuffer(char *bigbuf, int len){

char smallbuf[4];
int i = 0;
int buflen= sizeof(smallbuf);
printf("length of smallbuf is= %d\n",buflen);
printf("length of original string= %d\n", len);
for( i=buflen; i< len+buflen;i =i+buflen){
memcpy(smallbuf,bigbuf,i);
printf("i== %d\n", i);
bigbuf= bigbuf+i;
//printf("smallbuf conatins= %s\n", smallbuf);
}

return 0;
}

提前致谢

最佳答案

我不确定你在那里做什么,但我猜你正在尝试做类似的事情:

void Stuff(char* bbuf, int size)
{
char buf[4];
int remain = size;
while (remain)
{
int toCpy = remain > sizeof(buf) ? sizeof(buf) : remain;
memcpy(buf, bbuf, toCpy);
bbuf += toCpy;
remain -= toCpy;
DoStuff(&buf, toCpy); //Send the buffer or whatever
}
}

关于将大缓冲区复制到小缓冲区的 block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057896/

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