package syncdb import ( "basic.com/valib/logger.git" "net" "strconv" ) func rawSendTcpMsg(addr string, sendBuf []byte) error { conn, err := net.Dial("tcp", addr) if err != nil { logger.Debug("net.Dialt err", err) return err } defer conn.Close() //发送 _, err = conn.Write(sendBuf) if err != nil { logger.Debug("conn.Write err", err) return err } else { logger.Debug("raw send success") return nil } } func RawReceiveTcpMsg() { var tcpAddr *net.TCPAddr tcpAddr,_ = net.ResolveTCPAddr("tcp","127.0.0.1:"+strconv.Itoa(TcpTransportPort)) listener,_ := net.ListenTCP("tcp",tcpAddr) defer listener.Close() for{ conn,err := listener.AcceptTCP() if err!=nil { logger.Debug("listener.Accept err:", err) continue } logger.Debug("A transport client connected :" +conn.RemoteAddr().String()) go readStream(conn) } } func readStream(conn *net.TCPConn) { data := make([]byte,0) buf := make([]byte, 4096) for { n,err :=conn.Read(buf) if n == 0{ break } if err !=nil { return } data = append(data,buf...) } QueryTcpResponseChan <- data }