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