package main
import (
"fmt"
"net"
)
func main() {
count := 1
// 创建 ip
Listener, err := net.Listen("tcp", "127.0.0.1:8088")
if err != nil {
fmt.Println("创建监听ip失效", err)
}
count++
for true {
fmt.Println("开始监听")
// 监听链接 accept 会阻塞
conn, err := Listener.Accept()
if err != nil {
fmt.Println("创建监听链接失效", err)
}
go func(conn net.Conn) {
for {
con := make([]byte, 1024)
fmt.Println("持续接收数据中", count)
// 读数据
n, err := conn.Read(con)
if err != nil {
fmt.Println("读数据失效", err)
}
fmt.Println("长度:", n, con[:n], count)
name := string(con[:n]) + "刘洋"
// 写数据
n, err = conn.Write([]byte(name))
if err != nil {
fmt.Println("写数据失效", err)
}
fmt.Println("长度:", n, name, count)
}
// 关闭连接
conn.Close()
}(conn)
}
}
客户端
package main
import (
"fmt"
"net"
"time"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:8088")
if err != nil {
fmt.Println("链接失败")
}
str := []byte("liuYang")
for true {
n, err := conn.Write(str)
if err != nil {
fmt.Println("发送数据失败")
}
fmt.Println(n, "发生的长度")
buf := make([]byte, 1024)
n, err = conn.Read(buf)
if err != nil {
fmt.Println("接收数据失败")
}
fmt.Println(n, "接收的长度")
time.Sleep(1 * time.Second)
}
conn.Close()
}
发表评论