를 사용하여 이동 250 개 연결 후 나는이 다음과 같은 HTTP 클라이언트/서버 코드 :"로컬 호스트 : 그런 호스트 없다"ResponseWriter.Write
서버
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 개의 연결 후 다음 오류가 발생합니다. fr om client.Do :
error: Get http://localhost:5008/250: dial tcp: lookup localhost: no such host
더 이상의 연결은 성공하지 않습니다.
서버의 회선을 w.Write([]byte("OK"))
==>w.WriteHeader(200)
으로 변경하면 연결량에 제한이 없으며 예상대로 작동합니다.
무엇이 여기에 있습니까?
어떤 버전 :
내 문제에 대한 수정 프로그램은 REQ와 고해상도의 몸을 모두 닫습니다입니까? – OneOfOne
이것은 로컬 Go 설정에 문제가 있습니다. Go 버전 1.3.3도, devel + d4904f349bc8도 재생할 수 없습니다. – OneOfOne
버전 1.3.3 사용 –