13.5 UDP 服务器

这节开发的 UDP 服务器的目的是给它的 UDP 客户端返回从 1 到 1,000 的随机数。 这个程序命名为 UDPserver.go, 并分为 4 个部分。

UDPserver.go 的第一部分如下:

package main

import(
    "fmt"
    "math/rand"
    "net"
    "os"
    "strconv"
    "strings"
    "time"
)

func random(min, max, int) int {
    return rand.Intn(max-min) + min
}

UDPserver.go 的第二部分如下:

func main() {
    arguments := os.Args
    if len(arguments) == 1 {
        fmt.Println("Please provide a port number!")
        return
    }
    PORT := ":" + arguments[1]

    s, err := net.ResolveUDPAddr("udp4", PORT)
    if err != nil {
        fmt.Println(err)
        return
    }

UDPServer.go 的第三部分如下:

对于 UDP 网络,net.ListenUDP() 函数作用类似于 net.ListenTCP()

UDPserver.go 余下代码如下:

ReadFromUDP() 函数允许您使用一个字节切片缓冲区从 UDP 连接读取数据。

执行 UDPserver.go 并用 UDPclient.go 连接它,将产生如下输出:

客户端输出如下:

Last updated

Was this helpful?