package j4;
// RMIによる分散処理プログラムの実装例
// (5)クライアントプロセス実装のクラスファイル
// PiClient.java
// このクラスは、クライアントプロセスのクラスです
// 分散処理システムにおけるクライアントの機能を記述します
// RMIレジストリにおける名前の取得や、サーバへの仕事の依頼を行います
// 使用方法
// java j4.PiClient サーバ名
// なお、クライアント起動の前に、サーバとレジストリを起動してください
// ライブラリの利用
import java.rmi.Naming;
//PiClientクラス
public class PiClient{
// mainメソッド
public static void main(String args[]){
long result ;//サーバの返す値
long millis ;//経過時間
long maxloopcount = 10000000 ;//発生する点の個数
// 引数の指定がなかった場合はlocalhost
if (args.length==0) args = new String[]{"localhost"};
try{
//計算開始
System.out.println("Start") ;
//現在の時刻(ミリ秒)
millis = System.currentTimeMillis() ;
//rmiregistryによるサーバの検索
Pi p = (Pi)Naming.lookup("//"+args[0]+"/PiService") ;
//サーバのputPIメソッドによるπの計算
result=p.putPi(maxloopcount);
//計算終了、経過時間の測定
//経過時間にはネットワーク処理も含まれます
millis = System.currentTimeMillis() - millis ;
//πの値と経過時間の出力
System.out.println((double)result/maxloopcount*4) ;
System.out.println((double)millis/1000 + "sec") ;
}catch(Exception e){
System.out.println(e) ;
}
}
}