悉野小楼

导航

go学习笔记9(TCP)

tcp服务端:

package main

import (
    "fmt"
    "net"
    "time"
)

func main() {
    listen, err := net.Listen("tcp", ":8081")
    if err != nil {
        return
    }
    fmt.Println("listen ok at port 8081")
    for {
        conn, err := listen.Accept()
        if err != nil {
            fmt.Println("accept err:", err)
            continue
        }
        // 使用goroutine处理每个连结, 避免堵塞
        go func(c net.Conn) {
            defer c.Close()
            conn.Write([]byte("hello world"))
            time.Sleep(2 * time.Second)
        }(conn)
    }
}

tcp客户端.go

package main

import (
    "fmt"
    "net"
    "time"
)

func main() {
    con, err := net.Dial("tcp", "127.0.0.1:8081")
    if err != nil {
        return
    }
    defer func(con net.Conn) {
        err := con.Close()
        if err != nil {
            return
        }
    }(con)
    buff := make([]byte, 1024)
    n, err := con.Read(buff)
    if err != nil {
        return
    }
    fmt.Println(string(buff[:n]))
    time.Sleep(3 * time.Second)
}

 

posted on 2026-04-16 20:22  悉野  阅读(8)  评论(0)    收藏  举报