我的郵件目標(biāo)是從連接到 HTTP 服務(wù)器的 TCP 套接字讀取數(shù)據(jù),并逐塊解析 HTTP 響應(yīng)(傳輸編碼:分塊) - 服務(wù)器在同一連接上每 30 秒發(fā)送一個塊我附上了我的代碼??雌饋?io.Copy 讀取了第一個塊,然后在返回之前等待下一個塊,所以它阻止了我。如何在塊到達(dá)時讀取它們,而無需等待下一個塊?func readHttpChunk(server net.conn) { buf := bufio.NewReader(server) for { resp, err := http.ReadResponse(buf, nil) b := new(bytes.Buffer) io.Copy(b, resp.Body) fmt.Printf("Got me a chunk!") }}
1 回答

慕沐林林
TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個贊
而不是使用io.Copy
use resp.Body.Read(buf)
wherebuf
是分配的字節(jié)片。使用足夠大的緩沖區(qū),以免塊被截斷。讀取應(yīng)該充滿buf
一個塊。
- 1 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消