Rumah > pembangunan bahagian belakang > Golang > pergi http.ListenAndServe tidak menunggu sambungan kelihatan seperti keluar

pergi http.ListenAndServe tidak menunggu sambungan kelihatan seperti keluar

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-14 22:12:08
ke hadapan
996 orang telah melayarinya

go http.ListenAndServe 不等待连接看起来像是退出

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.

Kandungan soalan

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")
}
Salin selepas log masuk

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
Salin selepas log masuk

Cuba sambung:

xxx@xxx:~$ curl http://localhost
curl: (7) Failed to connect to localhost port 80 after 0 ms: Connection refused
Salin selepas log masuk

Apa yang saya hilang di sini?

Kemas kini

Dibuang Fatal, yang masih bermula dan berhenti tanpa mendengar permintaan mendapatkan.

Penyelesaian

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan