我的郵件目標是從連接到 HTTP 服務器的 TCP 套接字讀取數據,并逐塊解析 HTTP 響應(傳輸編碼:分塊) - 服務器在同一連接上每 30 秒發送一個塊我附上了我的代碼??雌饋?io.Copy 讀取了第一個塊,然后在返回之前等待下一個塊,所以它阻止了我。如何在塊到達時讀取它們,而無需等待下一個塊?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貢獻2016條經驗 獲得超9個贊
而不是使用io.Copy
use resp.Body.Read(buf)
wherebuf
是分配的字節片。使用足夠大的緩沖區,以免塊被截斷。讀取應該充滿buf
一個塊。
- 1 回答
- 0 關注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消