func ListenAndServe(addr string, handler Handler) error
該方法用於在指定的 TCP 網路地址 addr 進行監聽,然後呼叫伺服器端處理程式來處理傳入的連線請求。http.Handle("/foo", fooHandler) http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) }) log.Fatal(http.ListenAndServe(":8080", nil))如果想更多地控制伺服器端的行為,可以自定義 http.Server,程式碼如下所示:
s := &http.Server{ Addr: ":8080", Handler: myHandler, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } log.Fatal(s.ListenAndServe())下面通過一個簡單的伺服器端範例來演示一下Go語言是如何處理 HTTP 請求的,程式碼如下所示:
package main import ( "io" "log" "net/http" ) func HelloServer(w http.ResponseWriter, req *http.Request) { io.WriteString(w, "C語言中文網n") } func main() { http.HandleFunc("/hello", HelloServer) err := http.ListenAndServe(":12345", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }成功執行上面的程式碼會佔用 12345 埠,我們可以使用瀏覽器存取
http://localhost:12345/hello
來檢視執行結果,如下所示: