package main import ( "flag" "io" "log" "net/http" ) type handler struct{} func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/plain") io.WriteString(w, "Hello world!") } func main() { port := flag.String("port", "8080", "Default localhost port") flag.Parse() mux := http.NewServeMux() mux.Handle("/{$}", &handler{}) log.Fatal(runServer(mux, *port)) } func runServer(h http.Handler, port string) error { srv := http.Server{ Addr: ":" + port, Handler: h, } log.Printf("Serving on port %s...\n", port) return srv.ListenAndServe() }