我有一个已知大小的巨大缓冲区。我需要复制它的大块通过套接字发送到服务器。对于这种追求,我试图复制一次说1024个字节,然后发送它。将Big Buffer复制到更小的缓冲区中
这里的问题是,我不知道缓冲区的内容。它可以是字符串或二进制。它应该处理缓冲区中包含的所有数据。
这是我写的代码,当然不起作用。这只是一个小的测试代码,我首先使用一个字符串。后来我想用一些二进制文件测试它。但首先,我必须将指针概念正确地加上!
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;
}
在此先感谢
如何将大小为20的缓冲区复制到大小为4的缓冲区中是否正确? – 2011-05-19 11:35:26
它在一个循环内,它正在复制大小为4的块,直到较大的缓冲区变空。其实,代码并不好,但这是一个索引和长度的问题,这个想法是可以的。 – 2011-05-19 11:51:53
嗨迭戈,你能解释指数错在哪里吗? – user489152 2011-05-19 12:03:58