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
