Server端
package main
import (
"fmt"
"net"
)
func main() {
//创建链接的套接字socket,监听地址和端口
listener,err :=net.Listen("tcp","127.0.0.1:8000")//指定服务器的ip地址和端口号
if err !=nil{
fmt.Print("尝试监听客户端失败")
return
}
defer listener.Close()
//说明accept是在监听
fmt.Println("等待客户端建立链接")
conn,err := listener.Accept()
conn.Write([]byte("来自服务端的消息are you receive?"))
if err!=nil{
fmt.Printf("尝试链接客户端失败")
return
}
fmt.Println("与客户端链接成功")
defer conn.Close()
for{
buff := make([]byte,4096)
n,err:= conn.Read(buff)
if err!=nil{
fmt.Println("读取客户端的数据失败")
return
}
fmt.Println("服务器读到数据:",string(buff[:n]))
}
}
Clilent端
package main
import (
"fmt"
"net"
)
func main() {
conn,err := net.Dial("tcp","127.0.0.1:8000")
if err!=nil{
fmt.Println("链接服务器失败")
return
}
defer conn.Close()
fmt.Println("链接服务器成功")
conn.Write([]byte("are you read???"))
buff := make([]byte,4096)
n,err2 :=conn.Read(buff)
if err2 != nil{
fmt.Println("从服务器读取数据失败")
return
}
fmt.Println("来自服务器的数据",string(buff[:n]))
}