Golang通过标准库中的net包提供了对TCP和UDP协议的支持,实现网络编程的方法如下:
TCP编程:
import (
"net"
"fmt"
)
func main() {
// 连接TCP服务器
conn, err := net.Dial("tcp", "127.0.0.1:8080")
if err != nil {
fmt.Println("连接服务器失败:", err)
return
}
// 发送数据
conn.Write([]byte("hello"))
// 接收数据
var buf [1024]byte
n, err := conn.Read(buf[:])
if err != nil {
fmt.Println("读取数据失败:", err)
return
}
fmt.Println("收到回复:", string(buf[:n]))
// 关闭连接
conn.Close()
}
UDP编程:
import (
"net"
"fmt"
)
func main() {
// 创建UDP连接
udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8080")
if err != nil {
fmt.Println("解析地址失败:", err)
return
}
conn, err := net.DialUDP("udp", nil, udpAddr)
if err != nil {
fmt.Println("连接服务器失败:", err)
return
}
// 发送数据
conn.Write([]byte("hello"))
// 接收数据
var buf [1024]byte
n, _, err := conn.ReadFromUDP(buf[:])
if err != nil {
fmt.Println("读取数据失败:", err)
return
}
fmt.Println("收到回复:", string(buf[:n]))
// 关闭连接
conn.Close()
}