我有兩個小程序通過一個套接字很好地通信,接收端在Go中。當我的信息足夠小以適應1024字節的緩衝區,並且可以從連接中讀取一次,但是現在我想從100k +或更多的圖像傳輸數據時,一切都很好用。我假設正確的解決方案是不增加緩衝區,直到任何圖像可以適應內部。如何通過Go中的套接字檢索文件數據?
僞去:
var buf = make([]byte,1024)
conn, err := net.Dial("tcp", ":1234")
for {
r, err := conn.Read(buf[0:])
go readHandler(string(buf[0:r]),conn)
}
我怎樣才能提高我的套接字讀取程序同時接受簡單的幾個字節的消息,也更大的數據?如果您可以將總圖像數據轉換爲io.Reader以在image.Decode中使用,則可獲得獎勵積分。
我如何在連接上讀取?是conn.Read一個io.Reader? – Nick
是的,net.Conn實現了io.Reader,因爲net.Conn有「Read(b [] byte)(n int,err os.Error)」方法。 – 2011-10-19 07:23:42