Go语言UdpClient

Go语言UdpClient教程

Go 语言 UdpClient 教程的步骤可以总结为:定义通信的地址和端口、使用 Dial 得到连接信息、从连接信息读取数据以及使用连接信息发送数据。

案例

实现 UdpClient

package main import ( "bufio" "fmt" "net" "os" "strconv" ) const( SERVER_IP = "127.0.0.1" PORT = 8081 ) func main() { fmt.Println("嗨客网(www.haicoder.net)") serverAddr := SERVER_IP + ":" + strconv.Itoa(PORT) conn, err := net.Dial("udp", serverAddr) if err != nil { fmt.Println("Net dial err =", err) os.Exit(1) } defer conn.Close() input := bufio.NewScanner(os.Stdin) for input.Scan() { line := input.Text() if _, err := conn.Write([]byte(line)); err != nil{ fmt.Println("Wrtie err =", err) return } fmt.Println("Write:", line) msg := make([]byte, 1024) if _, err = conn.Read(msg); err != nil{ fmt.Println("Read err =", err) return } fmt.Println("Response:", string(msg)) } }

我们首先定义了两个常量,一个 string 类型的通信地址变量 SERVER_IP,一个 int 类型的通信端口变量 PORT,接着,我们使用 net.Dial 传入协议类型为 udp 加上 udp 的地址信息创建一个 udp 的连接信息。

连接信息创建成功后,需要使用 close 关闭连接信息,否则会造成资源泄露。接着,我们不停的监听键盘的输入,将键盘输入发送给服务器。

现在,我们运行 UdpServer ,然后再运行这个 UdpClient,此时 UdpServer 端显示如下图:

03_golang udpserver.png

此时,Server 在等待 Client 端发送数据,此时,我们运行 Client,显示如下:

04_golang udpclient.png

此时,client 端在等待输入,我们输入任意内容,此时 Client 端显示如下:

05_golang udpclient.png

我们在 client 端输入内容之后,在 server 端接受到了 client 发送的内容,并且给 client 发送了一条数据,server 端显示如下:

06_golang udpserver.png

我们看到,server 端收到了 client 发送的数据,并回复了一条,我们再次,在 client 发送一条数据,此时客户端显示如下:

07_golang udpclient.png

server 端显示如下:

08_golang udpserver.png

这样,我们就实现了 client 与 server 的通信。

Go语言UdpClient教程总结

Go 语言 UdpClient 教程的步骤可以总结为:定义通信的地址和端口、使用 Dial 得到连接信息、从连接信息读取数据以及使用连接信息发送数据。