golang的网络编程
时间: 2023-10-20 19:27:03 浏览: 117
Golang是一种强大的编程语言,它提供了丰富的标准库来进行网络编程。在Golang中,可以使用net包来处理网络相关的操作。下面是一个简单的Golang网络编程的示例:
```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
}
defer listener.Close()
fmt.Println("Listening on localhost:8080")
for {
// 等待客户端连接
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting connection:", err.Error())
return
}
fmt.Println("Accepted connection from:", conn.RemoteAddr().String())
// 处理连接
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
// 读取客户端发送的数据
data := make([]byte, 1024)
_, err := conn.Read(data)
if err != nil {
fmt.Println("Error reading:", err.Error())
return
}
fmt.Println("Received data:", string(data))
// 发送响应给客户端
response := "Hello, client!"
_, err = conn.Write([]byte(response))
if err != nil {
fmt.Println("Error writing:", err.Error())
return
}
conn.Close()
}
```
以上示例展示了一个简单的TCP服务器,它监听本地的8080端口,并在接收到客户端连接后,读取客户端发送的数据并发送响应。你可以根据自己的需求修改和扩展这个示例来完成更复杂的网络编程任务。
阅读全文