這與必須用 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 回答
- 0 關注
- 182 瀏覽
添加回答
舉報
0/150
提交
取消