服务端
package main
import (
"fmt"
"net"
)
func main() {
testSocketServer()
}
func testSocketServer() {
//1.创建服务器地址
addr, _ := net.ResolveTCPAddr("tcp4", "localhost:8899")
//2.创建监听
lis, _ := net.ListenTCP("tcp4", addr)
//3.通过监听器获取客户端传过来的数据
fmt.Println("服务器端已启动等待客户端连接")
//无限循环来接收数据
for {
conn, _ := lis.Accept()
//4.转换数据
//使用协程,支持高并发
go func() {
b := make([]byte, 1024)
n, _ := conn.Read(b)
fmt.Println("获取到客户端的数据为", string(b[:n]))
conn.Write([]byte("服务器已经收到您发的消息"))
conn.Close()
}()
}
//关闭连接
//
}
客户端
package main
import (
"fmt"
"net"
"strconv"
)
func main() {
testSocketClient()
}
func testSocketClient() {
//1.创建服务端地址
addr, _ := net.ResolveTCPAddr("tcp4", "localhost:8899")
for i := 0; i < 10; i++ {
fmt.Println("客户端开始发送数据")
//3.发送数据
//2.创建连接
conn, _ := net.DialTCP("tcp4", nil, addr)
fmt.Println("客服端发送测试数据:你好啊"+strconv.Itoa(i))
conn.Write([]byte("客服端发送测试数据:你好啊"+strconv.Itoa(i)))
//获取服务端返回数据
b := make([]byte, 1024)
n, _ := conn.Read(b)
fmt.Println("获取到服务端的数据为", string(b[:n]))
//4.关闭连接
conn.Close()
}
}