Go语言TcpServer

Go语言TcpServer教程

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教程总结

Go 语言 TcpServer 教程的步骤可以总结为:定义通信的地址和端口、使用 Listen 函数监听 TCP 的地址和端口信息并得到连接信息、使用连接信息的 Accept 函数等待连接、每来一个连接得到一个连接,使用连接进行读写数据。