golang 讀寫總結

1. 第一種方式

# 客戶端寫
//向服務器端寫數據
conn.Write(sendData1)


#服務端讀
headData := make([]byte, 8)
//ReadFull從r精確地讀取len(buf)字節數據填充進buf。
//函數返回寫入的字節數和錯誤(如果沒有讀取足夠的字節)。
//只有沒有讀取到字節時纔可能返回EOF;如果讀取了有但不夠的字節時遇到了EOF,
//函數會返回ErrUnexpectedEOF。 只有返回值err爲nil時,返回值n纔會等於len(buf)。

_, err := io.ReadFull(conn, headData) 

2.第二種方式

#客戶端寫
conn.Write(data)

#服務端讀
//NewReader創建一個具有默認大小緩衝、從r讀取的*Reader。
reader := bufio.NewReader(conn)

var buf [1024]byte
//Read讀取數據寫入p。本方法返回寫入p的字節數。
//本方法一次調用最多會調用下層Reader接口一次Read方法,
//因此返回值n可能小於len(p)。讀取到達結尾時,
//返回值n將爲0而err將爲io.EOF。
n, err := reader.Read(buf[:])

3.第三種

#客戶端寫
_, err = conn.Write([]byte(trimInput))


#服務端讀
//創建一個切片
buf := make([]byte, 512)
n, err := conn.Read(buf)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章