Go socket 编程代码示范

6 min read

以下是一个基于 Go 语言的 Socket 编程代码示范:

package main

import (
"net"
"fmt"
)

func main() {
// 启动服务,监听本地地址的 9999 端口
listener, err := net.Listen("tcp", "localhost:9999")
if err != nil {
fmt.Println("Error listening:", err.Error())
return
}
defer listener.Close()
fmt.Println("Listening on localhost:9999")

// 接收连接请求
for {
    conn, err := listener.Accept()
    if err != nil {
        fmt.Println("Error accepting:", err.Error())
        return
    }
    // 开启新协程处理连接
    go handleConnection(conn)
}

}

// 处理连接
func handleConnection(conn net.Conn) {
// 读取客户端发送的数据
buf := make([]byte, 1024)
_, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading:", err.Error())
return
}
fmt.Printf("Received message: %s\n", buf)

// 向客户端发送响应数据
_, err = conn.Write([]byte("Hello from server!"))
if err != nil {
    fmt.Println("Error writing:", err.Error())
}

// 关闭连接
conn.Close()

}