Golang中如何实现TCP和UDP协议的网络编程?

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()
}