我是HTTP客戶端和TCP \ IP編程的新手,所以我的問題可能對有經驗的人很模糊,但請嘗試回答。HTTP客戶端編程 - 如何知道服務器已發送所有數據
我正在實現一個HTTP客戶端,發送請求到服務器之後我正在等待一個讀取事件(異步套接字),當讀取事件時,我正在使用讀取命令提取數據並將其存儲在本地緩衝區中。
這裏如何知道服務器已經發送了所有數據,以便我可以開始處理信息? 我很困惑在這個階段
我是HTTP客戶端和TCP \ IP編程的新手,所以我的問題可能對有經驗的人很模糊,但請嘗試回答。HTTP客戶端編程 - 如何知道服務器已發送所有數據
我正在實現一個HTTP客戶端,發送請求到服務器之後我正在等待一個讀取事件(異步套接字),當讀取事件時,我正在使用讀取命令提取數據並將其存儲在本地緩衝區中。
這裏如何知道服務器已經發送了所有數據,以便我可以開始處理信息? 我很困惑在這個階段
那麼內容可以一起或以大塊的形式返回。當服務器知道有效負載的長度時,它將在響應中提供Content-Length標題。但有時服務器在開始傳輸之前不知道有效負載的總長度,則它使用chunk transfer。
服務器的響應應該包含一個http-header,它有一個名爲content-length的字段。您可以使用該長度來確定服務器應發送的數據量。一旦服務器發送給定數量,您就完成接收數據。
考慮內容長度爲零。是否所有的HTTP頭可以在一次讀取?報頭信息不會以兩個數據包發送嗎? @vtortola – evk1206 2014-12-08 06:16:37
如果長度爲0,意味着您可以在獲取空行後停止閱讀:http://www.tutorialspoint.com/http/http_messages.htm – vtortola 2014-12-08 10:35:17