我的代码与gowiki
中的代码相同package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
但是,在我构建并运行此程序后,它会立即退出而不会阻止,因此当我尝试从Chrome访问http://localhost:8080/monkey
时,我没有得到任何响应。
环境:Ubuntu 14(在Windows7上的VirtualBox中)
为什么?
答案 0 :(得分:16)
检查从ListenAndServe
func main() {
http.HandleFunc("/", handler)
fmt.Println(http.ListenAndServe(":8080", nil))
}
答案 1 :(得分:4)
http.ListenAndServe
函数返回符合error
接口的对象。如果调用没有阻塞,那肯定意味着发生了某种错误。最受欢迎的是:
8080
或0.0.0.0
接口答案 2 :(得分:0)
就我而言,这是一个permission denied
错误。使用sudo
就像是一种魅力。
sudo go run filename.go
或
sudo filename