2012-09-26 30 views
2

在建立連接並且您想要讀取來自連接的字節後,如何讀取所有字節?從我所嘗試的,我可以閱讀,直到它像分界線一樣達到分隔符。但是如何獲得包括換行符在內的所有信息呢?我試圖在Go中創建一個redis客戶端,協議將結果與\ r \ n分開,因此在這種情況下,Buffer.ReadLine或Buffer.ReadSlice不起作用。你如何讀取tcp連接上的所有字節?

回答

3

要從讀取器讀取所有字節(如TCP連接),可以使用ioutil.ReadAll,該讀取直到從另一端發送EOF或發生錯誤。

請注意,已經有一些redis clients

+0

供參考:根據http://redis.io/clients(請參閱★),Go Redis客戶端*正式推薦爲[Redigo](https://github.com/garyburd/redigo)。 – deltheil

+0

謝謝,我更新了我的答案,指出客戶名單。 – nemo

+0

@nemo我很好奇,在與一個Redis服務器交談時,如何讀取EOF正確的事情?只要符合協議,redis服務器就可以發送任何字節流。 redis服務器只能響應redis協議定義的5種不同數據類型中的任何一種。我只是困惑,發送一個EOF是**不是協議規範的一部分。因此,閱讀EOF對我來說似乎沒有意義,因爲這可能永遠不會發送。 – Pinocchio

相關問題