第二步 迴圈讀取資料
利用for迴圈,等待客戶端傳送資料
本文**檢視github:
修改上一步的**,讓服務端迴圈接收客戶端傳送的訊息,主要使用for迴圈,直接上**
package main
import
("fmt"
"net"
)func
main()
//程式返回後關閉socket
defer tcplistener.
close()
fmt.
println
("等待客戶連線..."
)//開始接收連線
conn, err := tcplistener.
accept()
if err !=
nil//獲取連線位址
remoteaddr := conn.
remoteaddr()
fmt.
println
(, remoteaddr)
//定義乙個資料接收buffer
var buf [
1024
]byte
for//將bytes轉為字串
result :=
string
(buf[
0:n]
)//輸出結果
fmt.
println
("接收到資料:"
, result)
}}
上面的**和第一步幾乎一樣,只是在最後接收用for套起來,實現迴圈接收
//定義乙個資料接收buffer
var buf [
1024
]byte
for//將bytes轉為字串
result :=
string
(buf[
0:n]
)//輸出結果
fmt.
println
("接收到資料:"
, result)
}
Go實現簡單的Socket服務端筆記 三
利用goroutine實現同時多個客戶端連線 將資料讀取放入單獨的方法中,利用goroutine執行 本文 檢視github 要實現多個客戶端連線,需要將每個客戶端放入單獨的執行緒處理,通常我們使用多執行緒實現這個功能,但go語言提供的 goroutine,可以非常方便的實現並行 goroutine...
Go實現簡單的Socket服務端筆記 八
session中read方法實現粘包拆包處理 定義簡單協議,資料報頭由4位元組構成 第1位固定為 第2 3位為body長度 uint16 第4位固定為 接收資料時若第1位和第4位不正確則認為接收到異常資料,同時關閉socket連線 本文 檢視github 為了實現粘包拆包處理,我們自己實現乙個buf...
用go實現簡單的socket通訊
服務端 package main import fmt net func process conn net.conn 3.顯示客戶端傳送的內容到伺服器終端 fmt.println string buf n func main defer listen.close 延時關閉 forelse 這裡準備乙...