/** reads in an rdp packet from the datagram channel - blocking call */ static RDPPacket receivePacket(DatagramChannel dc) throws ClosedChannelException { try { if (dc == null) { throw new MVRuntimeException("RDPServer.receivePacket: datagramChannel is null"); } // get a packet from the reader staticMVBuff.rewind(); InetSocketAddress addr = (InetSocketAddress) dc.receive(staticMVBuff.getNioBuf()); if (addr == null) { return null; } RDPPacket packet = new RDPPacket(); packet.setPort(addr.getPort()); packet.setInetAddress(addr.getAddress()); packet.parse(staticMVBuff); return packet; } catch (ClosedChannelException ex) { throw ex; } catch (Exception e) { throw new MVRuntimeException("error", e); } }