1.server.go
package main
import (
"fmt"
"net"
)
func main() {
listener, err := net.Listen("tcp", "127.0.0.1:8000")
if err != nil {
fmt.Println("net.Listen err:", err)
return
}
defer listener.Close()
fmt.Println("服务器等待客户端连接...")
conn, err := listener.Accept()
if err != nil {
fmt.Println("lintener.Accpet() err:", err)
return
}
defer conn.Close()
fmt.Println("连接成功!")
buf := make([]byte, 4096)
n, err := conn.Read(buf)
if err != nil {
fmt.Println("conn.Read err:", err)
return
}
fmt.Println("收到数据:", string(buf[:n]))
}
2.client.go
package main
import (
"net"
"fmt"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:8000")
if err != nil {
fmt.Println("Dial err:", err)
return
}
defer conn.Close()
_, err = conn.Write([]byte("Are u ready?"))
if err != nil {
fmt.Println("Write err:", err)
return
}
}