go监听多个端口处理http请求,并在接受8082的http请求后执行关闭程序
时间: 2023-08-11 10:11:37 浏览: 69
可以使用 Go 标准库中的 `net/http` 包来实现监听多个端口的 http 服务器,然后在接收 8082 端口的请求时执行关闭程序的操作。
以下是一个简单的示例代码:
```go
package main
import (
"fmt"
"net/http"
)
func main() {
// 创建一个 http 服务器
server := &http.Server{}
// 监听多个端口
go func() {
if err := server.ListenAndServe(":8080", nil); err != nil {
fmt.Println("Error starting server on port 8080:", err)
}
}()
go func() {
if err := server.ListenAndServe(":8081", nil); err != nil {
fmt.Println("Error starting server on port 8081:", err)
}
}()
// 监听 8082 端口并处理请求
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/shutdown" {
fmt.Println("Shutting down server...")
// 关闭服务器
server.Close()
} else {
fmt.Fprintf(w, "Hello, world!")
}
})
if err := server.ListenAndServe(":8082", nil); err != nil {
fmt.Println("Error starting server on port 8082:", err)
}
}
```
这个程序会同时监听 8080 和 8081 两个端口,并在接收到 8082 端口的请求时,判断请求路径是否为 `/shutdown`,如果是,则执行关闭服务器的操作。在实际应用中,你可以根据自己的需要修改相应的代码。