UDP 服务器
UDPserver.go 的第一部分如下:
UDPserver.go 的第二部分如下:
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
}
对于 UDP 网络,net.ListenUDP()
函数作用类似于 。
UDPserver.go 余下代码如下:
n, addr, err := connection.ReadFromUDP(buffer)
fmt.Print("->", string(buffer[0:n-1]))
if strings.TrimSpace(string(buffer[0:n])) == "STOP" {
fmt.Println("Exiting UDP server!")
return
}
data := []byte(strconv.Itoa(random[1, 1001]))
fmt.Printf("data: %s\n", string(data))
_, err = connection.WriteToUDP(data, addr)
if err != nil {
}
}
}
执行 UDPserver.go 并用 UDPclient.go 连接它,将产生如下输出:
客户端输出如下:
$ go run UDPclient.go localhost:8001
The UDP server is 127.0.0.1:8001
>> Hello!
Reply: 156
>> Another random number please :)
Reply: 944
>> Leaving...
Reply: 491
Exiting UDP client!