Rumah >pembangunan bahagian belakang >Golang >pergi http.ListenAndServe tidak menunggu sambungan kelihatan seperti keluar
editor php Youzi akan memperkenalkan anda kepada masalah yang menarik dan biasa dalam artikel ini, iaitu, apabila menggunakan fungsi http.ListenAndServe dalam bahasa Go, mengapa ia seolah-olah keluar tanpa menunggu sambungan. Soalan ini mungkin mengelirukan, tetapi ia sebenarnya disebabkan oleh ciri konkurensi bahasa Go. Dalam kandungan berikut, kami akan menerangkan punca masalah ini secara terperinci dan memberikan penyelesaian untuk membantu pembaca lebih memahami dan menggunakan fungsi http.ListenAndServe dalam bahasa Go.
Saya mempunyai aplikasi mudah dan saya mahu ia menjadi daemon yang menunggu sambungan, tetapi nampaknya ia tidak mendengar dan saya tidak dapat mencarinya dalam senarai proses.
Kod:
package main import ( "fmt" "log" "net/http" ) func main() { fmt.Println("Start Server") log.Print("Start Server") http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World! from linux") }) log.Print("Going to listen") if err := http.ListenAndServe(":80", nil); err != err { log.Print("getting error") log.Fatal(err) } fmt.Println("End Server") log.Print("End Server") }
Kompil dan jalankan:
xxx@xxx:~/go_test$ CGO_ENABLED=0 go build -gcflags "all=-N -l" -o ./main umen@umen:~/go_test$ ./main Start Server 2023/11/15 07:40:22 Start Server 2023/11/15 07:40:22 Going to listen End Server 2023/11/15 07:40:22 End Server
Cuba sambung:
xxx@xxx:~$ curl http://localhost curl: (7) Failed to connect to localhost port 80 after 0 ms: Connection refused
Apa yang saya hilang di sini?
Dibuang Fatal, yang masih bermula dan berhenti tanpa mendengar permintaan mendapatkan.
log.Fatal("Going to Listen")
Tamatkan pelaksanaan permohonan anda.
Rujukan:
Atas ialah kandungan terperinci pergi http.ListenAndServe tidak menunggu sambungan kelihatan seperti keluar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!