net.Listen和http.ListenAndServe是Go语言中用于创建网络服务的两个函数。
- net.Listen函数:
- 功能:net.Listen函数用于创建一个网络监听器,监听指定的网络地址和端口。
- 差异:net.Listen函数只负责监听网络连接,不涉及具体的HTTP协议处理。
- 示例代码:listener, err := net.Listen("tcp", "localhost:8080")
if err != nil {
// 错误处理
}
defer listener.Close()
// 监听器准备就绪,可以接受连接
for {
conn, err := listener.Accept()
if err != nil {
// 错误处理
}
// 处理连接
go handleConnection(conn)
}
- http.ListenAndServe函数:
- 功能:http.ListenAndServe函数用于创建一个HTTP服务器,监听指定的网络地址和端口,并处理HTTP请求。
- 差异:http.ListenAndServe函数不仅负责监听网络连接,还会处理HTTP协议相关的请求和响应。
- 示例代码:http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 处理HTTP请求
fmt.Fprintf(w, "Hello, World!")
})
err := http.ListenAndServe(":8080", nil)
if err != nil {
// 错误处理
}
总结:
- net.Listen函数用于创建网络监听器,只负责监听网络连接,不涉及具体的HTTP协议处理。
- http.ListenAndServe函数用于创建HTTP服务器,既负责监听网络连接,又处理HTTP协议相关的请求和响应。
推荐的腾讯云相关产品和产品介绍链接地址: