基本要求:
验证任意一个大于2的偶数都能分解成两个素数之和。
服务器端的对象负责对是否是素数进行判断。
客户端负责验证一定范围内的猜想。
服务器端可以定时查询客户端验证的进度。
下面是我的程序,请问红字的最后一步怎么来实现啊?谢谢大家
1.
package rmi;
import java.rmi.*;
public interface PanDuan extends Remote {
// 接口中的具体方法声明,注意必须声明抛出RemoteException
boolean IsSuShu(int a) throws RemoteException;
}

2.
package rmi;import java.rmi.*;import javax.rmi.PortableRemoteObject;
public  class PanDuanImpl extends PortableRemoteObject
implements PanDuan { protected PanDuanImpl() throws RemoteException {
super();
// TODO Auto-generated constructor stub
}

     public boolean IsSuShu(int a) throws RemoteException {

      int i,c; 
i=a;
boolean b = true;
for(c=2;c<i;c++) 
{
if(i%c==0)
 b=false;}
return b;


}
}
3.
package rmi;import java.rmi.*;
public class SuShuServer {
public static void main(String[] args) {


try {
System.out.println("开始RMI Server ...");
/* 创建远程对象的实现实例*/
PanDuanImpl hImpl = new PanDuanImpl();
System.out.println("将实例注册到专有的URL ");
Naming.rebind("SuShuService", hImpl);
System.out.println("等待RMI 客户端调用...");
System.out.println("");
} catch (Exception e) {
System.out.println("错误: " + e);
}

}
}
4.
package rmi;import java.rmi.*;
public class SuShuClient {
public static void main(String[] args) {
// 在服务器端设置安全机制
/*
if (System.getSecurityManager() == null) {
System.setSecurityManager(new
RMISecurityManager());
}
*/
/* 默认为本地主机和默认端口*/
String host = "localhost:1099";
/* 带输入参数时,将host 设置为指定主机*/
if (args.length > 0)
host = args[0];
try {
/* 根据指定的URL 定位远程实现对象*/
/* “h”是一个标识符,我们将用它指向实现“Hello”
接口的远程对象*/
PanDuan h = (PanDuan)Naming.lookup("rmi://" + host
+ "/SuShuService");
System.out.println("实现PanDuan接口的远程对象: "+ h);
System.out.println("我在客户端,开始调用RMI 服务器端的'IsSuShu'方法");for(int oushu=2; ;oushu+=2)
{for(int a=2;a<=oushu/2;a++)
{    if(h.IsSuShu(a))
        System.out.println(oushu+"已经验证成功,这两个素数是"+a+"  "+(oushu-a));




}

}} catch (Exception ex) {
System.out.println("错误" + ex);
}
}
}

解决方案 »

  1.   

    定时查询客户端验证的进度?
    答:"进度" 是不是指:已经验证成功的已到达哪一个数了?
    不管"进度"是什么含义吧,就是说:服务器方要定时查询客户方的"状态",怎么做?
    方法很多.
    方法1)客户机方通过远程接口,向服务器方提供远程方法:让服务器方,每当定时器到时,调用该远程方法来获取客户机方的"状态"如:验证的进度.--这是服务器方主动去""
    方法2)服务器方的远程接口,每当客户机已成功找到一个(即:进度已向前前进了一点),就调用远程方法向服务器主动报告(让服务器保存存下来),目的是:当服务器定时到了,自己在自己的保存空间中直接查询一下就行了.--这是客户机主动""
    其它方法.....
      

  2.   

    服务器端写一个线程,定时查询结果,不行吗?
      

  3.   

    oh,我们是刚开这个课,原来需要学的还是很多啊,谢谢!