我已經有一個基本的HTTP客戶端在C++中設置,到目前爲止工作正常。這是一個學校任務,所以還有很多事情要做,但我遇到了一個問題。我在一個while循環中使用recv()函數,將響應片斷重複添加到我的響應緩衝區,然後每次輸出該緩衝區。問題是,在每個響應結束時,HTTP請求也會被加入。基本的C++套接字編程中的不尋常的HTTP響應
例如,響應將是頁面源代碼的一部分,接着是「GET/HTTP/1.1 ...」,接着是下一個塊,然後是「GET ...」,並且等等。
這裏是我的相關代碼:
// Prepare request
char request[] = "HEAD /index.html HTTP/1.1\r\nHOST: www.google.com\r\nCONNECTION: close\r\n\r\n";
// Send request
len = send(sockfd, request, sizeof(request), 0);
// Write/output response
while (recv(sockfd, buf, sizeof(buf), 0) != 0)
{
// Read & output response
printf("%s", buf);
}
有道理。謝謝! – 2009-10-20 19:15:36