服务端代码:
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)
}
}