💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
``` //server.go package main import ( "fmt" "io" "net" ) func process(conn net.Conn) { defer conn.Close() //关闭connect for { //创建一个新的切片 buf := make([]byte, 1024) //1.等待客户端通过conn发送信息 //2.如果客户端没有write\[发送\],那么协程就阻塞在此处 fmt.Println("服务器在等待客户端的输入", conn.RemoteAddr().String()) n, err := conn.Read(buf) //n是字节长度 if err == io.EOF {             fmt.Println("客户端退出") return         } if err != nil {             fmt.Println("服务器的read err=", err) return         }         fmt.Println("n=", n) //3.显示客户端发送的内容在服务器的终端         fmt.Print(string(buf[:n]))     } } func main() { fmt.Println("服务器开始监听......") //127.0.0.1->ipv4 0.0.0.0->ipv4和ipv6 或者:port,省略ip listen, err := net.Listen("tcp", "0.0.0.0:8899") if err != nil {         fmt.Println("listen err=", err) return     } defer listen.Close() //延时关闭listen //循环等待客户端 for {         fmt.Println("等待客户端连接......") conn, err := listen.Accept() if err != nil {             fmt.Println("accpet() error=", err) continue         }         fmt.Printf("accpet =%v ip=%v\\n", conn, conn.RemoteAddr()) go process(conn)     } //fmt.Printf("listen =%v\\n", listen) } ``` ``` //client.go package main import ( "bufio" "fmt" "net" "os" ) func main() { conn, err := net.Dial("tcp", "127.0.0.1:8899") if err != nil {         fmt.Println("client dial err=", err) return     }     fmt.Println("conn succ=", conn) reader := bufio.NewReader(os.Stdin) //代表标准输入\[终端\] //从终端读取一行用户输入,并准备发送给服务器 str, err := reader.ReadString('\\n') if err != nil {         fmt.Println("read string err=", err) return     } //再将line发送给服务器 n, err := conn.Write(\[\]byte(str)) if err != nil {         fmt.Println("conn.write err=", err) return     }     fmt.Printf("客户端发送了 %d 字节的数据,并推出", n) } ```