创建连接池、监听端口、接收消息、将消息发送给除自己外的所有人
package main // 引入文件 import ( "net" "fmt" "bufio" "encoding/hex" "strings" ) // 创建TCP服务器最多允许10个连接 var conn [10]net.Conn // var ci = 0 var tcpconn = false func tcpserver(address string){ lis,err := net.Listen("tcp",address) if err != nil { fmt.Println(err) } defer lis.Close() for{ con,err := lis.Accept() if err != nil { // fmt.Println("lianjiecuowu") } for i:=0;i<10;i++{ if conn[i]==nil{ conn[i] = con fmt.Println(i) break } } go tcpmsg(con) } } //广播消息 func tcpsend(msg []byte, con net.Conn){ for i:=0;i<10;i++{ if conn[i]!=nil && conn[i]!=con{ s,_ := conn[i].Write(msg) if s == 0 { conn[i] = nil } } } } //接收消息 func tcpmsg(con net.Conn){ fmt.Println(con) reader := bufio.NewReader(con) for { msg,err := reader.ReadString('\n') if err != nil { fmt.Println(err) return } msg = strings.Replace(msg,"\n","",-1) tcpdata, _ :=hex.DecodeString(msg) tcpsend(tcpdata,con) } } func main(){ fmt.Println("TCP服务运行中,请勿关闭此窗口") tcpserver(":3303") }