package tcpserver import ( "bytes" "go-wechat/config" "io" "log" "net" ) // process // @description: 处理连接 // @param conn func process(conn net.Conn) { // 处理完关闭连接 defer func() { log.Printf("处理完成: -> %s", conn.RemoteAddr()) _ = conn.Close() }() var buf bytes.Buffer if _, err := io.Copy(&buf, conn); err != nil { log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err) } log.Printf("[%s]数据长度: %d", conn.RemoteAddr(), buf.Len()) go parse(conn.RemoteAddr(), buf.Bytes()) // 转发到其他地方去 if len(config.Conf.Wechat.Forward) > 0 { go forward(buf.Bytes()) } // 将接受到的数据返回给客户端 if _, err := conn.Write([]byte("200 OK")); err != nil { log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err) } }