Go 语言 TcpServer 教程的步骤可以总结为:定义通信的地址和端口、使用 Listen 函数监听 TCP 的地址和端口信息并得到连接信息、使用连接信息的 Accept 函数等待连接、每来一个连接得到一个连接,使用连接进行读写数据。
实现 TcpServer
package main
import (
"fmt"
"net"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 net.Listen 监听连接的地址与端口
listener, err := net.Listen("tcp", "0.0.0.0:9090")
if err != nil {
fmt.Printf("listen fail, err: %v\n", err)
return
}
for {
// 等待连接
conn, err := listener.Accept()
if err != nil {
fmt.Printf("accept fail, err: %v\n", err)
continue
}
// 对每个新连接创建一个协程进行收发数据
go process(conn)
}
}
func process(conn net.Conn) {
defer conn.Close()
for {
var buf [128]byte
//接受数据
n, err := conn.Read(buf[:])
if err != nil {
fmt.Printf("read from connect failed, err: %v\n", err)
break
}
fmt.Printf("receive from client, data: %v\n", string(buf[:n]))
//发送数据
if _,err = conn.Write([]byte("Send From Server")); err != nil{
fmt.Printf("write to client failed, err: %v\n", err)
break
}
}
}
首先,我们使用 net.Listen传入协议类型为 tcp 加上 tcp 的地址信息创建一个 tcp 的连接信息,接着,我们使用 for 循环 不停的等待接受连接。
每次来一个连接,我们都创建一个 协程,该协程负责接受数据与发送数据。
Go 语言 TcpServer 教程的步骤可以总结为:定义通信的地址和端口、使用 Listen 函数监听 TCP 的地址和端口信息并得到连接信息、使用连接信息的 Accept 函数等待连接、每来一个连接得到一个连接,使用连接进行读写数据。