Golang在Linux中的网络编程怎样做
作者:EasyWind
时间:2026-07-03
浏览:0
Golang标准库net支持TCP、UDP等协议,通过TCP服务端监听8080端口,每连接启用goroutine处理,客户端连接后双向收发消息,实现简洁高效的回显服务。该示例是学习Go并发网络编程的经典入门案例,展示了协程处理多连接的简便性。
说到Linux下的Golang网络编程,标准库net可以说是一把趁手的利器。它覆盖了TCP、UDP、ICMP乃至Unix域套接字等常见协议,基本上日常需求都能搞定。下面用一个典型的TCP服务端+客户端示例,带你快速上手。

一、先搭一个TCP服务器
package main
import (
"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)
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
continue
}
go handleRequest(conn)
}
}
func handleRequest(conn net.Conn) {
defer conn.Close()
reader := bufio.NewReader(conn)
for {
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 received\n"))
}
}
这段代码监听8080端口,每来一个连接就开一个goroutine去处理,子协程里不停地读消息并回复确认。典型的并发模型,简洁又高效。
二、再写一个TCP客户端
package main
import (
"bufio"
"fmt"
"net"
"os"
"strings"
)
func main() {
server := "127.0.0.1"
port := "8080"
conn, err := net.Dial("tcp", server+":"+port)
if err != nil {
fmt.Println("Error connecting:", err.Error())
os.Exit(1)
}
defer conn.Close()
go func() {
reader := bufio.NewReader(conn)
for {
message, err := reader.ReadString('\n')
if err != nil {
fmt.Println("Error reading:", err.Error())
return
}
fmt.Print("Received message: ", string(message))
}
}()
reader := bufio.NewReader(os.Stdin)
for {
fmt.Print("Enter message: ")
text, _ := reader.ReadString('\n')
conn.Write([]byte(text))
if strings.ToLower(text) == "exit" {
break
}
}
}
客户端这边,先连上服务端,然后开一个后台goroutine持续接收服务端回显的消息,主协程则从标准输入读用户输入,发出去。输入“exit”退出。
三、跑起来看看
先启动服务器程序,再启动客户端。在客户端输入任意消息,服务器会接收到并回复“Message received”,客户端则打印出这个回复。整个过程很直观,一个最小可用的TCP回显服务就完成了。
当然,这只是个入门示例。net库还藏着不少好东西:处理HTTP请求、解析DNS、构建UDP广播……更多玩法可以直接翻官方文档:https://pkg.go.dev/net。
作者最新文章
淘宝闪购“等灯不计时”机制解析:政策、技术与多方协同
2026-09-08 18:00
一加自研电竞三芯P4/G3/T3确认:一加16首发,支持185FPS及9000mAh电池
2026-09-08 16:52
抖音拍摄剪辑教程:从竖屏运镜到卡点成片
2026-09-03 06:05
Excel筛选大于指定数值:操作步骤与结果验证
2026-09-03 06:03
PDF添加文字水印:位置、透明度与字号设置指南
2026-09-03 06:01
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































