在Go语言中,可以使用net包来实现网络编程。以下是一个简单的示例代码,该代码使用Go语言在Linux系统上实现了一个简单的TCP服务器:
package main
import (
"fmt"
"net"
)
func main() {
// 创建TCP监听器
listener, err := net.Listen("tcp", "0.0.0.0:8080")
if err != nil {
fmt.Println("Error listening:", err.Error())
return
}
defer listener.Close()
fmt.Println("Server listening on 0.0.0.0:8080")
for {
// 接受客户端连接
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
return
}
// 处理客户端请求
go handleRequest(conn)
}
}
func handleRequest(conn net.Conn) {
// 读取客户端数据
buffer := make([]byte, 1024)
_, err := conn.Read(buffer)
if err != nil {
fmt.Println("Error reading:", err.Error())
return
}
// 打印客户端发送的数据
fmt.Println("Received message:", string(buffer))
// 向客户端发送响应数据
conn.Write([]byte("Hello from server"))
// 关闭连接
conn.Close()
}
在这个示例中,我们创建了一个TCP服务器,监听在本地的8080端口。当有客户端连接时,我们会接受客户端连接,并在一个新的goroutine中处理客户端请求。在handleRequest函数中,我们读取客户端发送的数据并向客户端发送响应数据。
要运行这个示例程序,可以使用以下命令:
go run server.go
在另一个终端中,可以使用telnet工具连接到服务器:
telnet localhost 8080
然后在telnet客户端中输入一些数据,就可以看到服务器接收到了数据并发送了响应。这就是一个简单的网络编程示例,展示了如何在Go语言中实现网络编程。