question: public static MulticastRequest decodeMulticastRequest ( ByteBuffer buf ) throws IOException { try { String host = getUtf ( buf ) ; int port = ushortToInt ( buf . getShort ( ) ) ; String [ ] groups = new String [ ushortToInt ( buf . getShort ( ) ) ] ; for ( int i = 0 ; i < groups . length ; i ++ ) { groups [ i ] = getUtf ( buf ) ; } ServiceID [ ] ids = new ServiceID [ ushortToInt ( buf . getShort ( ) ) ] ; for ( int i = 0 ; i < ids . length ; i ++ ) { long hi = buf . getLong ( ) ; long lo = buf . getLong ( ) ; ids [ i ] = new ServiceID ( hi , lo ) ; } return new MulticastRequest ( host , port , groups , ids ) ; } catch ( RuntimeException e ) { throw new DiscoveryProtocolException ( null , e ) ; } }
target:  Decodes multicast request according to the net.jini.discovery.plaintext format.