Go语言TcpClient

Go语言TcpClient教程

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

案例

实现 TcpClient

package main import ( "bufio" "fmt" "net" "os" "strings" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") conn, err := net.Dial("tcp", "localhost:9090") if err != nil { fmt.Printf("connect failed, err : %v\n", err.Error()) return } defer conn.Close() inputReader := bufio.NewReader(os.Stdin) for { input, err := inputReader.ReadString('\n') if err != nil { fmt.Printf("read from console failed, err: %v\n", err) break } trimmedInput := strings.TrimSpace(input) if trimmedInput == "Q" { break } //发送数据 if _, err = conn.Write([]byte(trimmedInput)); err != nil { fmt.Printf("write failed , err : %v\n", err) break } //接受数据 var recvData = make([]byte, 1024) if _, err = conn.Read(recvData); err != nil{ fmt.Printf("Read failed , err : %v\n", err) break } fmt.Printf("Receive data : %v\n", string(recvData)) } }

我们使用 net.Dial 传入协议类型为 Tcp 加上 Tcp 的地址信息创建一个 Tcp 的连接信息。连接信息创建成功后,需要使用 close 关闭连接信息,否则会造成资源泄露。

接着,我们不停的监听键盘的输入,将键盘输入发送给服务器。现在,我们运行 TcpServer ,然后再运行这个 TcpClient,此时 TcpServer 端显示如下图:

09_golang tcpserver.png

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

10_golang tcpclient.png

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

11_golang tcpclient.png

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

12_golang tcpserver.png

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

13_golang tcpclient.png

server 端显示如下:

14_golang tcpserver.png

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

Go语言TcpClient教程总结

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