如何从其他功能中删除http服务器

时间:2017-05-19 20:01:21

标签: go

package main

import (
    "fmt"
    "log"
    "net/http"
    "time"
)


func handlerfunc(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello World" )
    }

    http.ServeContent(w, r, str , time.Now(), f)
}

func PleaseStart(){
    http.HandleFunc("/" , handlerfunc )
    log.Fatal(http.ListenAndServe(":80", nil))
}

func kill_server() {
    //How do I kill server from here
}


func main() {
    go PleaseStart()

    kill_server()
}

我启动了一个响应hello world的http.server,如何从kill_server函数中杀死它 如果没有重写所有内容,这可能吗?

1 个答案:

答案 0 :(得分:0)

不幸的是没有。 if it has more than 1000 entries, delete the first entry会生成一个您无法访问的本地http.ListenAndServe实例,这是您需要能够停止访问的实例。您需要创建自己的http.Server实例,并使用该实例注册您的处理程序,而不是使用http.Server。然后,您可以使用http.HandleFunc立即关闭服务器,或Close()正常停止服务器(让关机前的请求完成)。

Shutdown()