如题,建立连接后发送请求后,保存到文件的代码如下:
while(recvSize=recv(sockfd,recvBuf,BUF_SIZE,0)>0){
fwrite(recvBuf,sizeof(char),strlen(recvBuf),fp);
printf("%s",recvBuf);
memset(recvBuf,0,sizeof(recvBuf));
}
网页可以在终端上正常显示,但是这样保存到文件后打开就提示文件打开出错,包含无效字符。。。。
strlen遇到\0就返回了,所以计算的值不一定准确啊
试试fwrite前加上
recvBuf[recvSize] = '\0';
strlen(recvBuf)计算字符串长度是不对的
fwrite(recvBuf,sizeof(char),recvSize,fp)
打16进制出来看