выполните исключение http.ListenAndServe («8080», ноль), но завершите процесс

#go

#Вперед

Вопрос:

 package main

import (
    "io"
    "net/http"
)

func main() {
    http.HandleFunc("/user/login", func(writer http.ResponseWriter, request *http.Request) {
        io.WriteString(writer,"Hello world")
    })
    //启动一个服务器
    http.ListenAndServe("8080",nil)
}
  

введите описание изображения здесь

я хочу прослушать порт 8080, но когда я запускаю этот код, он автоматически завершается

Комментарии:

1. http.ListenAndServe("8080",nil) возвращает ошибку. Попробуйте распечатать его, чтобы лучше понять, почему он терпит неудачу, например fmt.Println(http.ListenAndServe("8080",nil)) , будет печатать nil , если он работает нормально, иначе он напечатает фактическую ошибку.

Ответ №1:

Посмотрите это:

Правильный синтаксис для ListenAndServe ListenAndServe(":8080", nil)

Если вы добавите журнал с log.Fatal(http.ListenAndServe("8080", nil)) помощью, вы можете увидеть ошибку:

2020/11/12 14:44:11 прослушивание tcp: адрес 8080: отсутствует порт в адресе

Ответ №2:

Ваш адрес порта прослушивания может иметь неправильный формат. приведенный ниже фрагмент работает

  package main
    import (
        "fmt"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/", Helloworld)
        http.ListenAndServe(":8080", nil)
    }
    
    func Helloworld(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
    }