我有以下 http 客户端/服务器代码:服务器func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Println("Req: ", r.URL) w.Write([]byte("OK")) // <== PROBLEMATIC LINE // w.WriteHeader(200) // Works as expected }) log.Fatal(http.ListenAndServe(":5008", nil))}客户func main() { client := &http.Client{} for i := 0; i < 500; i++ { url := fmt.Sprintf("http://localhost:5008/%02d", i) req, _ := http.NewRequest("GET", url, nil) _, err := client.Do(req) if err != nil { fmt.Println("error: ", err) } else { fmt.Println("success: ", i) } time.Sleep(10 * time.Millisecond) }}当我在服务器上运行上面的客户端时,在 250 个连接之后,我从 client.Do 收到以下错误:error: Get http://localhost:5008/250: dial tcp: lookup localhost: no such host并且没有更多的连接会成功。但是,如果我从w.Write([]byte("OK"))==>更改服务器中的行,w.WriteHeader(200)则连接数量没有限制,并且可以按预期工作。我在这里缺少什么?
3 回答
- 3 回答
- 0 关注
- 218 浏览
添加回答
举报
0/150
提交
取消