在Go 中使用網路應用程式時,net.Conn.Read 方法提供了一種便捷的方法從連線接收資料。然而,它透過讀入預先確定的位元組數組來操作,這給開發人員帶來了預測確切資料長度的挑戰。
指定固定長度-length 位元組數組,例如make([]byte, 2048),可能會導致兩種潛在的結果問題:
為了克服這些限制,我們可以利用io.Copy 函數,它提供了一種穩健且高效的方法來在兩個物件之間傳輸資料io 相容連接。透過建立 bytes.Buffer 物件並將資料從 net.Conn 傳輸到其中,我們可以根據需要動態擴展緩衝區,確保捕獲準確數量的資料。
下面是一個範例程式碼片段,示範如何使用io.Copy 來準確讀取資料:
在這個例子中,我們發起一個TCP 連接到Google 的網路伺服器,發送HTTP 請求,並使用bytes.Buffer 和io.Copy 動態擷取回應資料。產生的 buf 物件將包含完整的回應,確保我們讀取傳輸的確切資料量。
透過利用這種方法,您可以可靠地從網路連接接收數據,而不受預定義位元組數組施加的限制。
以上是如何使用 Golang 從 net.Conn 讀取準確的資料量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!