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 端显示如下图:
此时,Server 在等待 Client 端发送数据,此时,我们运行 Client,显示如下:
此时,client 端在等待输入,我们输入任意内容,此时 Client 端显示如下:
我们在 client 端输入内容之后,在 server 端接受到了 client 发送的内容,并且给 client 发送了一条数据,server 端显示如下:
我们看到,server 端收到了 client 发送的数据,并回复了一条,我们再次,在 client 发送一条数据,此时客户端显示如下:
server 端显示如下:
这样,我们就实现了 client 与 server 的通信。
Go 语言 UdpClient 教程的步骤可以总结为:定义通信的地址和端口、使用 Dial 得到连接信息、从连接信息读取数据以及使用连接信息发送数据。