Maison  >  Article  >  développement back-end  >  allez http.ListenAndServe sans attendre la connexion, cela ressemble à une sortie

allez http.ListenAndServe sans attendre la connexion, cela ressemble à une sortie

WBOY
WBOYavant
2024-02-14 22:12:08874parcourir

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

l'éditeur php Yuzi vous présentera un problème intéressant et courant dans cet article, à savoir, lors de l'utilisation de la fonction http.ListenAndServe dans le langage Go, pourquoi elle semble se terminer sans attendre la connexion. Cette question peut prêter à confusion, mais elle est en réalité causée par les caractéristiques de concurrence du langage Go. Dans le contenu suivant, nous expliquerons en détail la cause de ce problème et donnerons des solutions pour aider les lecteurs à mieux comprendre et utiliser la fonction http.ListenAndServe en langage Go.

Contenu de la question

J'ai une application simple et je veux que ce soit un démon en attente de connexions, mais on dirait qu'il n'écoute pas et je ne la trouve même pas dans la liste des processus.

Code :

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")
}

Compilez et exécutez :

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

Essayez de vous connecter :

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

Qu'est-ce qui me manque ici ?

Mise à jour

Suppression de Fatal, qui démarre et s'arrête toujours sans écouter les demandes get.

Workaround

log.Fatal("Going to Listen") Terminez l'exécution de votre application.

Référence :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer