我正在尝试在 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"))
}
相关分类