去 TCP 读取是非阻塞的

我正在尝试在 Go 中创建服务器和客户端,我已经设法与服务器和客户端进行通信。但是我遇到的问题是 golang 中的 TCP 读取是非阻塞的。我想知道 golang 中的读取是否有可能像 C 中的读取一样阻塞。谢谢


编辑:


这是服务器的源代码:


func Init_tcp() *net.TCPListener {

    laddr, err := net.ResolveTCPAddr("tcp", ":4243")

    if err != nil {

            log.Fatal(err)

    }

    tcp, err := net.ListenTCP("tcp", laddr)

    if err != nil {

            log.Fatal(err)

    }

    return tcp

}


func main() {

    tcp := Init_tcp()

    conn, _ := tcp.Accept()

    data := make([]byte, 512)

    conn.SetNoDelay(false)

    for {

            conn.Read(data)

            fmt.Println(data)

    }

}

和我的客户:


func Init_tcp() *net.TCPConn {

    laddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:4243")

    if err != nil {

            log.Fatal(err)

    }

    tcp, err := net.DialTCP("tcp", nil, laddr)

    if err != nil {

            log.Fatal(err)

    }

    return tcp

}


func main() {

   tcp := Init_tcp()

   tcp.Write([]byte("hello world"))

}


开心每一天1111
浏览 220回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go