这与必须用 Java 提交的家庭作业有关。该程序按预期工作,将 server.go 的内容打印到终端。为什么客户端在两次或多次连续运行后挂起 30 秒?延迟仅在指定客户端端口时发生(与分配相关)。// server.gopackage mainimport ( "log" "net/http")func main() { log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("."))))}如果不是 defer conn.Close() 并且客户端仅在前一个客户端返回后运行,我希望延迟是等待连接关闭的超时。// client.gopackage mainimport ( "fmt" "io" "log" "net" "os")func main() { d := net.Dialer{ LocalAddr: &net.TCPAddr{ Port: 8081, }, } // Dial the server from client port 8081 to server port 8080 conn, err := d.Dial("tcp", ":8080") if err != nil { log.Fatal(err) } defer conn.Close() // Request the resource and log the response fmt.Fprint(conn, "GET /server.go HTTP/1.0\r\n\r\n") io.Copy(os.Stdout, conn)}延迟期间 netstat 的输出:$ netstat -anp tcp | grep "8080\|8081"tcp4 0 0 127.0.0.1.8081 127.0.0.1.8080 SYN_SENT tcp46 0 0 *.8080 *.* LISTEN
1 回答
- 1 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消