服務端代碼:
package main
import (
"fmt"
"io/ioutil"
"net"
)
func main() {
tcpServer, _ := net.ResolveTCPAddr("tcp", ":8081")
listener, _ := net.ListenTCP("tcp", tcpServer)
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println(err)
continue
}
go handle(conn)
}
}
func handle(conn net.Conn) {
defer conn.Close()
//讀取客戶端傳送的消息
//go func(){}() 以併發的方式調用匿名函數func
go func() {
response, _ := ioutil.ReadAll(conn)
fmt.Println(string(response))
}()
//向客戶端發送消息
conn.Write([]byte("客戶端你好"))
}
客戶端代碼:
package main
import (
"fmt"
"io/ioutil"
"net"
"os"
)
func main() {
//建立tcp連接
conn, err := net.Dial("tcp", "127.0.0.1:8081")
checkError(err)
//向服務端發送數據
_, err = conn.Write([]byte("服務器你好"))
checkError(err)
//接收響應
response, _ := ioutil.ReadAll(conn)
fmt.Println(string(response))
}
func checkError(err error) {
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}