最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Golang在Linux中的网络编程怎样实现
时间:2026-06-09 08:25:53 编辑:袖梨 来源:一聚教程网
在Linux中,使用Golang进行网络编程主要涉及到几个核心包,如"net"、“os"和"io”。以下是一个简单的TCP服务器和客户端的示例,展示了如何在Linux中使用Golang进行网络编程。

- TCP服务器:
package mainimport ("bufio""fmt""net""os")func main() {port := "8080"listener, err := net.Listen("tcp", ":"+port)if err != nil {fmt.Println("Error listening:", err.Error())os.Exit(1)}defer listener.Close()fmt.Println("Listening on port", port)for {conn, err := listener.Accept()if err != nil {fmt.Println("Error accepting connection:", err.Error())continue}go handleRequest(conn)}}func handleRequest(conn net.Conn) {defer conn.Close()reader := bufio.NewReader(conn)message, err := reader.ReadString('n')if err != nil {fmt.Println("Error reading:", err.Error())return}fmt.Print("Received message: ", string(message))conn.Write([]byte("Message receivedn"))}- TCP客户端:
package mainimport ("bufio""fmt""net""os""strings")func main() {serverAddress := "127.0.0.1:8080"conn, err := net.Dial("tcp", serverAddress)if err != nil {fmt.Println("Error connecting:", err.Error())os.Exit(1)}defer conn.Close()fmt.Println("Connected to server")go func() {reader := bufio.NewReader(os.Stdin)for {fmt.Print("Enter message: ")text, _ := reader.ReadString('n')text = strings.TrimSpace(text)conn.Write([]byte(text + "n"))}}()buffer := make([]byte, 1024)for {bytesRead, err := conn.Read(buffer)if err != nil {fmt.Println("Error reading:", err.Error())return}fmt.Print("Received from server: ", string(buffer[:bytesRead]))}}在这个例子中,我们创建了一个简单的TCP服务器,监听8080端口。当客户端连接时,服务器会接收客户端发送的消息,并将其打印到控制台。然后,服务器会向客户端发送一条确认消息。
客户端连接到服务器,并允许用户输入消息。用户输入的消息会被发送到服务器,然后客户端会等待并接收服务器的响应。
要运行这个示例,请将服务器代码保存为server.go,将客户端代码保存为client.go。首先运行服务器:
go run server.go然后在另一个终端中运行客户端:
go run client.go现在,您可以在客户端输入消息,它们将被发送到服务器并显示在服务器端。服务器也会向客户端发送确认消息。
相关文章
- 《明日方舟》精一50级升80级需要多少经验-50级升到80级经验与龙门币需求分析 08-01
- 王者荣耀世界王昭君有什么技能 王昭君技能效果介绍 08-01
- Namo-Turn-Detector-v1-Korean 项目介绍:GitCode 开源模型信息整理 08-01
- 个人所得税退税申请时间是何时 08-01
- 明日方舟早露常伴我身皮肤详情 08-01
- 蛋仔派对绯梦佩姬获取方法一览 08-01