@Override
 protected SocketAddress remoteAddress0() {
   StreamConnection conn = connection();
   if (conn == null) {
     return null;
   }
   return conn.getPeerAddress();
 }
 public <A extends SocketAddress> A getPeerAddress(final Class<A> type) {
   return channel.getPeerAddress(type);
 }
 public SocketAddress getPeerAddress() {
   return channel.getPeerAddress();
 }
 @Override
 public <A extends SocketAddress> A getPeerAddress(Class<A> type) {
   return connection.getPeerAddress(type);
 }
 @Override
 public SocketAddress getPeerAddress() {
   return connection.getPeerAddress();
 }
 @Override
 public SocketAddress getPeerAddress() {
   return delegate.getPeerAddress();
 }