package net
import (
"fmt"
"net"
"testing"
)
func TestServer(t *testing.T) {
// 1. 监听指定端口
listen, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println(err)
return
}
for {
// 2. 获取连接对象.如果没有连接请求会阻塞
accept, err := listen.Accept()
if err != nil {
fmt.Println(err)
return
}
go func() {
bytes := make([]byte, 1024)
// 3.读取数据,没有数据会阻塞
n, err := accept.Read(bytes)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(bytes[:n]))
_, err = accept.Write(bytes[:n])
if err != nil {
return
}
err = accept.Close()
if err != nil {
fmt.Println(err)
}
}()
}
}
func TestClient(t *testing.T) {
// 1. 连接到指定服务器端口,返回连接对象
conn, err := net.Dial("tcp", ":8080")
if err != nil {
fmt.Println(err)
return
}
// 2. 写出数据
_, err = conn.Write([]byte("hello"))
if err != nil {
fmt.Println(err)
}
bytes := make([]byte, 1024)
//3. 读数据,没有数据会阻塞
n, err := conn.Read(bytes)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(bytes[:n]))
}
[Golang]简单Socket编程
于 2023-12-09 13:48:05 首次发布