sprintf(send_data,"GET/HTTP/1.1\r\nHost: %s\r\n\r\n",hoststr);
printf("%s",send_data);
send(sock,send_data,strlen(send_data), 0);
while(bytes_recieved)
{
bytes_recieved=recv(sock,recv_data,1024,0);
printf("%d\n",bytes_recieved);
if(bytes_recieved==0){ break; }
recv_data[bytes_recieved] = '\0';
printf("%s" , recv_data);
}
當我請求例如「www.example.com」, 我得到整個頁,然後在最後兩到三秒鐘我得到bytes_received印刷(「0」)後然後循環中斷。構建簡單的HTTP客戶端在C
爲什麼需要2-3秒來打破循環?
有沒有更好的方法來實現簡單的http客戶端然後呢?
謝謝。
在猜測?活着。嘗試使用「HTTP/1.0」 –
HTTP/1.0無需等待2-3秒即可工作爲什麼? –
默認情況下,HTTP 1.1使用「連接:保持活動」。這是因爲大多數網頁都有多個文件需要從服務器上下載;例如,您不必重新連接以獲取CSS。我相信你可以通過在頭文件中指定「Connection:Close」在HTTP 1.1中獲得這種行爲。 –