code: func NewSniffer(conn net.Conn, dbAddr string) (*Sniffer, error) {
  	s := &Sniffer{
  		conn:   conn,
  		dbAddr: dbAddr,
  		clRd:   bufio.NewReader(conn),
  		clWr:   bufio.NewWriter(conn),
  		mh:     &messageHeader{},
  		sh:     &segmentHeader{},
  		ph:     &partHeader{},
  		buf:    make([]byte, 0),
  	}
  
  	dbConn, err := net.Dial("tcp", s.dbAddr)
  	if err != nil {
  		return nil, err
  	}
  
  	s.dbRd = bufio.NewReader(dbConn)
  	s.dbWr = bufio.NewWriter(dbConn)
  	s.dbConn = dbConn
  	return s, nil
  }
docs: // NewSniffer creates a new sniffer instance. The conn parameter is the net.Conn connection, where the Sniffer
  // is listening for hdb protocol calls. The dbAddr is the hdb host port address in "host:port" format.