int namelen = getpeername (nfd.getNativeFD(), name);
int namelen = VmChannel.getpeername (nfd.getNativeFD(), name);
  public InetSocketAddress getPeerAddress() throws IOException  {    if (!nfd.isValid())      return null;    ByteBuffer name = ByteBuffer.allocateDirect(18);    int namelen = getpeername (nfd.getNativeFD(), name);    if (namelen == 0) // not connected yet      return null;    if (namelen == 4) // IPv4      {        byte[] addr = new byte[4];        name.get(addr);        int port = name.getShort() & 0xFFFF;        return new InetSocketAddress(Inet4Address.getByAddress(addr), port);      }    else if (namelen == 16) // IPv6      {        byte[] addr = new byte[16];        name.get(addr);        int port = name.getShort() & 0xFFFF;        return new InetSocketAddress(Inet6Address.getByAddress(addr), port);      }    throw new SocketException("invalid address length");  }