server := &http.Server{ Addr: ":8080", }
ln, err := net.Listen("tcp", ":8080") if err != nil { log.Fatal(err) } server := &http.Server{ Addr: ln.Addr().String(), }
listener, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { log.Fatal(err) } addr := listener.Addr().(*net.TCPAddr) fmt.Printf("Listening on %s\n", addr) handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World!")) }) server := &http.Server{ Addr: addr.String(), Handler: handler, } err = server.Serve(listener) if err != nil { log.Fatal(err) }This example creates a TCP listener on a randomly selected port. The `Server`'s `Addr` is set to the listener's address using the `String()` method of a `net.TCPAddr`. An HTTP handler is defined that always returns "Hello, World!". The server is started using the `Serve()` method of the `http.Server` type. In all these examples, the `net/http` package is used to create an HTTP server.