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.
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 ?
Suppression de Fatal, qui démarre et s'arrête toujours sans écouter les demandes get.
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!