-1
我的任務是從HTTP協議文件的服務器數據獲取 但問題是我不知道內容的大小,所以我遍歷閱讀func從socked獲取數據,但它迭代每隻有一次我不知道是不是真的,爲什麼從週期服務器獲取數據
int res, len, total, boolk = 0, p=0;
while ((res = read(client_socket,bufferOut,4095)) > 0)
{
bufferOut[res]= '\0';
if(p==0)
{
buffer = calloc(strlen(bufferOut)+1,sizeof(char));
}
else
{
buffer = realloc(buffer,strlen(buffer)*sizeof(char)+strlen(bufferOut)+1*sizeof(char));
}
strcat(buffer,bufferOut);
if(isEnough(bufferOut)!=0 && boolk == 0)
{
index = getIndex(buffer);
kk = getCode(buffer);
len = getLen(buffer);
boolk = 1;
}
if(strlen(bufferOut)>=len+index && boolk == 1)
{
break;
}
p++;
}
功能isEnough只有這樣看來,如果完整的HTTP標頭抵getIndex獲得頭和getLen獲得該文件的長度lenght時間,所以我想迭代,直到緩衝區是相同lenght的頭文件,該文件應該是