go使用gent网络库做为服务器的例子
时间: 2024-01-26 17:02:01 浏览: 127
Nginx服务器实现通过ip和user_gent限制访问的方法分析
以下是一个使用gent网络库的Go语言服务器示例:
```go
package main
import (
"fmt"
"github.com/gentlemanautomaton/gent"
)
func main() {
// 创建一个新的TCP服务器
listener, err := gent.ListenTCP("127.0.0.1:9000")
if err != nil {
fmt.Println("创建服务器失败:", err)
return
}
defer listener.Close()
fmt.Println("等待客户端连接...")
// 等待客户端连接
conn, err := listener.Accept()
if err != nil {
fmt.Println("接收客户端连接失败:", err)
return
}
defer conn.Close()
fmt.Println("客户端已连接")
// 读取来自客户端的消息
buffer := make([]byte, 1024)
n, err := conn.Read(buffer)
if err != nil {
fmt.Println("读取消息失败:", err)
return
}
// 输出来自客户端的消息
message := string(buffer[:n])
fmt.Println("来自客户端的消息:", message)
// 回复客户端
response := "Hello, client!"
_, err = conn.Write([]byte(response))
if err != nil {
fmt.Println("回复客户端失败:", err)
return
}
fmt.Println("已回复客户端")
}
```
这个示例创建了一个TCP服务器,等待客户端连接。一旦客户端连接成功,服务器会读取来自客户端的消息,然后输出该消息并回复客户端。该服务器只处理一个客户端的连接,但可以通过在一个循环中调用`Accept()`方法来处理多个客户端的连接。
阅读全文