我正在尝试与响应消息的 TCP 服务器通信:
package main
import (
"net"
"log"
)
func handleErr(err error) {
if err != nil {
log.Fatal(err)
}
}
func main() {
// connect
host := "1.2.3.4:5678"
conn, err := net.Dial("tcp", host)
handleErr(err)
defer conn.Close()
// write to socket
message := "Test\n"
conn.Write([]byte(message))
// read from socket
// (assume response is 'Test\n')
reply := make([]byte, 1024)
conn.Read(reply)
log.Println(string(reply))
}
我想要完成的是向另一端的套接字服务器发送消息,等待响应然后处理它。我似乎无法正确同步这些写入/读取操作以正确计时 - 现在读取操作似乎阻止了写入;我假设这是由于 Go 的异步性质造成的。这样做的惯用方法是什么?是 goroutines 吗?for { .. }读者的连续循环?一种sync.Wait机制?帮助表示赞赏。谢谢。
阿波罗的战车
相关分类