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() { tcpAddr := "0.0.0.0:"+strconv.Itoa(TcpTransportPort) listener,err := net.Listen("tcp",tcpAddr) if err != nil { logger.Debug("RawReceive server listen err:",err) return } defer listener.Close() for{ conn,err := listener.Accept() 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.Conn) { defer conn.Close() 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 }