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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

2 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

沒有Content-Length只有兩種情況,否則就不是一個(gè)標(biāo)準(zhǔn)的httpserver
傳輸完畢就關(guān)閉connection
HTTP1.1沒有Content-Length,但是Transfer-Encoding:chunked,最后一個(gè)chunk的length==0
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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