UDP 服务器

    UDPserver.go 的第一部分如下:

    UDPserver.go 的第二部分如下:

    1. arguments := os.Args
    2. if len(arguments) == 1 {
    3. fmt.Println("Please provide a port number!")
    4. return
    5. }
    6. PORT := ":" + arguments[1]
    7. s, err := net.ResolveUDPAddr("udp4", PORT)
    8. if err != nil {
    9. fmt.Println(err)
    10. return
    11. }

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

    UDPserver.go 余下代码如下:

    1. n, addr, err := connection.ReadFromUDP(buffer)
    2. fmt.Print("->", string(buffer[0:n-1]))
    3. if strings.TrimSpace(string(buffer[0:n])) == "STOP" {
    4. fmt.Println("Exiting UDP server!")
    5. return
    6. }
    7. data := []byte(strconv.Itoa(random[1, 1001]))
    8. fmt.Printf("data: %s\n", string(data))
    9. _, err = connection.WriteToUDP(data, addr)
    10. if err != nil {
    11. }
    12. }
    13. }

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

    客户端输出如下:

    1. $ go run UDPclient.go localhost:8001
    2. The UDP server is 127.0.0.1:8001
    3. >> Hello!
    4. Reply: 156
    5. >> Another random number please :)
    6. Reply: 944
    7. >> Leaving...
    8. Reply: 491
    9. Exiting UDP client!