1、TCP相互通信
服務端示例:
tcp_server.go
package main import ( "fmt" "net" ) func main() { //監聽 listener, err := net.Listen("tcp", "127.0.0.1:8000") if err != nil { fmt.Println("err = ", err) return } defer listener.Close() //阻塞等待用戶鏈接 conn, err := listener.Accept() if err != nil { fmt.Println("err = ", err) return } //接收用戶的請求 buf := make([]byte, 1024) //1024大小的緩沖區 n, err1 := conn.Read(buf) if err1 != nil { fmt.Println("err1 = ", err1) return } fmt.Println("buf = ", string(buf[:n])) defer conn.Close() //關閉當前用戶鏈接 }
客戶端示例:
tcp_client.go
package main import ( "fmt" "net" ) func main() { //主動連接服務器 conn, err := net.Dial("tcp", "127.0.0.1:8000") if err != nil { fmt.Println("err = ", err) return } defer conn.Close() //發送數據 conn.Write([]byte("are you ok?")) }
先啟動服務端:go run tcp_server.go
D:\GoFiles\src\hello_01>go run tcp_server.go buf = are u ok?
再啟動客戶端:go run tcp_client.go