第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用socket接收http的數(shù)據(jù), 如何判斷數(shù)據(jù)的結(jié)束

用socket接收http的數(shù)據(jù), 如何判斷數(shù)據(jù)的結(jié)束

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

2 回答

?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

沒有Content-Length只有兩種情況,否則就不是一個標準的httpserver
傳輸完畢就關(guān)閉connection
HTTP1.1沒有Content-Length,但是Transfer-Encoding:chunked,最后一個chunk的length==0
                            
查看完整回答
反對 回復(fù) 2019-04-16
?
藍山帝景

TA貢獻1843條經(jīng)驗 獲得超7個贊

可以仿造一下websocket的頭。
每個數(shù)據(jù)包開頭可以弄一個字節(jié)的fin來判斷這個包是不是最后一個數(shù)據(jù)包。
如果是確認關(guān)閉連接,可不可以傳一個累計發(fā)包數(shù)目供客戶端對比一下還有沒有沒有成功接受的數(shù)據(jù)。
                            
查看完整回答
反對 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 453 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號