interface anyName extends Remote {//定义远程对象,客户端和服务器端共享
void someMethod() throws RemoteException { ... }
...
}
//服务器端
//anyNameImpl.java
public class anyNameImpl extends UnicastRemoteObject implements anyName {
public anyNameImpl( String d ) { descr = d; }
public void someMethod() throws RemoteException { ... } private String descr;
}//anyNameServer.java
public class anyNameServer {
public static void main( String args[] ) {
try {
System.out.println( "Constructing server implementations..." );
anyNameImpl p = new anyNameImpl( "Name1" );
System.out.println( "Binding server implementations to registry..." );
Naming.rebind( "p",p ); System.out.println( "Waiting for invocations from clients..." );
}
catch( Exception e ) { }
}
}//客户端
//anyNameClient.java
public class anyNameClient {
public static void main( String args[] ) {
System.setProperty( "java.security.policy","client.policy" );
System.setSecurityManager( new RMISecurityManager() ); String url = "rmi://localhost/"; try {
anyName p = (anyName)Naming.lookup( url + "p" );
p.someMethod();
}
catch( Exception e ) { }
}
}运行就自己看书了,先启动注册服务器,然后编译服务器端,然后启动服务器,然后运行客户端。多看看书。
void someMethod() throws RemoteException { ... }
...
}
//服务器端
//anyNameImpl.java
public class anyNameImpl extends UnicastRemoteObject implements anyName {
public anyNameImpl( String d ) { descr = d; }
public void someMethod() throws RemoteException { ... } private String descr;
}//anyNameServer.java
public class anyNameServer {
public static void main( String args[] ) {
try {
System.out.println( "Constructing server implementations..." );
anyNameImpl p = new anyNameImpl( "Name1" );
System.out.println( "Binding server implementations to registry..." );
Naming.rebind( "p",p ); System.out.println( "Waiting for invocations from clients..." );
}
catch( Exception e ) { }
}
}//客户端
//anyNameClient.java
public class anyNameClient {
public static void main( String args[] ) {
System.setProperty( "java.security.policy","client.policy" );
System.setSecurityManager( new RMISecurityManager() ); String url = "rmi://localhost/"; try {
anyName p = (anyName)Naming.lookup( url + "p" );
p.someMethod();
}
catch( Exception e ) { }
}
}运行就自己看书了,先启动注册服务器,然后编译服务器端,然后启动服务器,然后运行客户端。多看看书。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货