@Override
 public void connect(InetAddress inetAddr, int port) throws SocketException {
   IoBridge.connect(fd, inetAddr, port); // Throws on failure.
   try {
     connectedAddress = InetAddress.getByAddress(inetAddr.getAddress());
   } catch (UnknownHostException e) {
     // this is never expected to happen as we should not have gotten
     // here if the address is not resolvable
     throw new SocketException("Host is unresolved: " + inetAddr.getHostName());
   }
   connectedPort = port;
   isNativeConnected = true;
 }
 @Override
 protected int peek(InetAddress sender) throws IOException {
   // We don't actually want the data: we just want the DatagramPacket's filled-in address.
   DatagramPacket packet = new DatagramPacket(EmptyArray.BYTE, 0);
   int result = peekData(packet);
   // Note: evil side-effect on InetAddress! This method should have returned InetSocketAddress!
   sender.ipaddress = packet.getAddress().getAddress();
   return result;
 }