用同步socket(語言隨意)來請求數據,建立請求之后sendHTTPRequest頭,然后就可以recv服務器的Response了.但是數據的結束應該怎樣判斷呢?(緩沖區大小是4096)判斷接收的數據與緩沖區大小對比,如果小于說明數據已經結束:如果最后一個包的大小恰好是4096,這樣我認為數據還沒結束,然后繼續recv,就會阻塞.用非阻塞socket,如果在接收過程中有空數據,則說明數據已經結束:數據中間可能會有延遲,如果這時出現不連續,會誤認為數據已經結束.HTTP相應頭的信息:不是所有的響應都包含Content-Length所以正確的httpclient實現這方面的是怎樣的.------UPDATE@2015/3/14------后來在StackOverflow找到了相應問題的回答,在此貼下鏈接http://stackoverflow.com/questions/4824451/detect-end-of-http-request-body.同時也感謝@xelz的耐心回答,采納為答案.
用socket接收http的數據, 如何判斷數據的結束
牛魔王的故事
2019-04-19 16:10:54