一个更高级的 Go 代码示例,展示了如何使用 Go 编写一个并发 Web 服务器,它能够同时处理多个客户端请求

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", handler)
    http.HandleFunc("/hello", helloHandler)
    go http.ListenAndServe(":8080", nil)
    go http.ListenAndServe(":8081", nil)
    fmt.Println("服务器已启动!按 Enter 键退出...")
    fmt.Scanln()
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "欢迎访问我的并发 Web 服务器!")
}

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

在这个示例中,我们首先导入 Go 的fmt和net/http包。然后我们定义了一个main函数,其中我们使用http.HandleFunc函数将两个处理函数与不同的路径关联起来。我们还使用了两个并发的http.ListenAndServe函数,分别在两个不同的端口上监听客户端请求。最后,我们使用fmt.Scanln函数等待用户按下 Enter 键以退出程序。

在handler和helloHandler函数中,我们使用fmt.Fprintf函数将欢迎消息和“Hello, World!”消息写入 HTTP 响应体。当客户端请求根路径时,会调用handler函数,而请求路径为“/hello”时,则会调用helloHandler函数。

通过使用并发的http.ListenAndServe函数,我们能够让我们的 Web 服务器同时处理多个客户端请求,从而提高了 Web 服务器的并发性能。

要运行此程序,需要先安装 Go 开发环境并设置好环境变量。然后可以在终端或命令提示符中进入包含该程序源代码的目录,并运行以下命令:

go run main.go

运行后,程序将同时在两个端口上启动 Web 服务器,并输出一条消息指示服务器已启动。此时,您可以在 Web 浏览器中访问这两个端口,并查看服务器响应的欢迎消息和“Hello, World!”消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值