go语言实现tcpserver
时间: 2023-03-15 18:27:40 浏览: 61
Go语言通过标准库中的net包来实现TCP服务器。下面是一个简单的TCP服务器的例子:
```go
package main
import (
"fmt"
"net"
)
func main() {
// 监听端口
listener, err := net.Listen("tcp", "localhost:8080")
if err != nil {
fmt.Println("Error listening:", err.Error())
return
}
// 监听成功后,不断地接收客户端的连接请求
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
return
}
// 处理客户端请求
go handleRequest(conn)
}
}
func handleRequest(conn net.Conn) {
// 读取客户端请求的数据
buf := make([]byte, 1024)
_, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading:", err.Error())
}
// 返回响应给客户端
conn.Write([]byte("Hello World!"))
// 关闭连接
conn.Close()
}
```
在这个例子中,服务器在“localhost”上监听端口8080,并处理来自客户端的请求。具体的,当服务器接收到客户端的请求后,会在一个单独的goroutine中处理请求并返回一个“Hello World!”的响应。