发布时间:2024-11-22 02:03:27
package main
import (
"fmt"
"net"
)
func main() {
// 监听指定的端口
listen, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println("监听失败:", err)
return
}
fmt.Println("开始监听端口:8080")
// 接收请求
for {
// 等待客户端连接
conn, err := listen.Accept()
if err != nil {
fmt.Println("接收请求失败:", err)
continue
}
// 处理请求
go handleRequest(conn)
}
}
func handleRequest(conn net.Conn) {
// 接收请求数据
buffer := make([]byte, 1024)
n, err := conn.Read(buffer)
if err != nil {
fmt.Println("读取请求失败:", err)
return
}
// 将请求数据转换为字符串并打印
request := string(buffer[:n])
fmt.Println("接收到请求:", request)
// 响应请求
response := "Hello, World!"
_, err = conn.Write([]byte(response))
if err != nil {
fmt.Println("响应请求失败", err)
}
// 关闭连接
conn.Close()
}
上述代码通过`net.Listen`函数监听了本地的8080端口,并通过循环等待客户端连接。一旦有客户端连接成功,就会启动一个新的goroutine来处理该连接的请求。
在`handleRequest`函数中,我们首先读取客户端发送的请求数据,然后将请求转换为字符串并打印出来。接下来,我们通过调用`conn.Write`函数向客户端发送响应数据,这里我们简单地回复了一句"Hello, World!"。最后,我们关闭与客户端的连接。
三、启动服务器 为了验证我们的代码是否正确,我们可以在终端中运行该程序,并通过另一个终端窗口使用curl命令发送请求。$ go run main.go
开始监听端口:8080
# 另一个终端窗口执行以下命令
$ curl http://localhost:8080
Hello, World!
四、总结
通过使用Golang的net包,我们可以轻松实现监听端口并处理接收到的请求。在实际应用中,我们可以根据需求进一步扩展和优化代码。
本文介绍了如何使用Golang监听端口并处理接收到的请求。通过简单的示例代码和执行结果,我们了解了整个流程的实现,并验证了代码的正确性。希望本文能对你有所帮助!