code: func (p *conn) RemoteAddr() net.Addr {
  	p.initOnce.Do(func() { p.checkPrefix() })
  	if p.srcAddr != nil {
  		return p.srcAddr
  	}
  	return p.Conn.RemoteAddr()
  }
docs: // RemoteAddr returns the address of the client if the PROXY protocol is being
  // used, otherwise just returns the address of the socket peer. If there is an
  // error parsing the header, the address of the client is not returned, and the
  // socket is closed. One implication of this is that the call could block if the
  // client is slow. Using a Deadline is recommended if this is called before
  // Read().