Natural

           

          [demo]創建一個rmi程序

          一個簡單rmi例子。

          1、當前編譯后的class在bin目錄下
          2、注冊:開一個cmd,到bin目錄下運行“rmiregistry”
          3、生成stub和skel的class文件:開一個cmd,到bin目錄下運行“rmic -vcompat com.rmi.CalculatorImpl”
          4、編寫授權文件policy.txt
          5、啟動服務器:開一個cmd,到bin目錄下運行“java -Djava.security.policy=com.rmi.policy.txt com.rmi.Ca
          culatorServer”
          6、運行客戶端:開一個cmd,到bin目錄下運行“D:\workspace\demo\bin>java -Djava.security.policy=com.rmi.policy.txt com.rmi.Cal
          culatorClient”


          package com._rmi;

          import java.rmi.Remote;

          public interface Calculator extends Remote {

              
          public long add(long a, long b) throws java.rmi.RemoteException;

              
          public long sub(long a, long b) throws java.rmi.RemoteException;

              
          public long mul(long a, long b) throws java.rmi.RemoteException;

              
          public long div(long a, long b) throws java.rmi.RemoteException;
          }
           
          package com._rmi;

          import java.rmi.RemoteException;
          import java.rmi.server.UnicastRemoteObject;

          public class CalculatorImpl extends UnicastRemoteObject implements Calculator {

              
          public CalculatorImpl() throws RemoteException
              {
                  
          super();
              }
              @Override
              
          public long add(long a, long b) throws RemoteException {
                  
          // TODO Auto-generated method stub
                  return a+b;
              }

              @Override
              
          public long div(long a, long b) throws RemoteException {
                  
          // TODO Auto-generated method stub
                  return a/b;
              }

              @Override
              
          public long mul(long a, long b) throws RemoteException {
                  
          // TODO Auto-generated method stub
                  return a*b;
              }

              @Override
              
          public long sub(long a, long b) throws RemoteException {
                  
          // TODO Auto-generated method stub
                  return a-b;
              }

          }
             
          package com._rmi;

          import java.rmi.Naming;
          public class CalculatorServer {

              
          public CalculatorServer()
              {
                  
          try
                  {
                      Calculator c 
          = new CalculatorImpl();
                      Naming.rebind(
          "rmi://localhost:1099/CalculatorService", c);
                  }
                  
          catch(Exception e)
                  {
                      System.out.println(e);
                  }
              }
              
              
          /**
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  
          new CalculatorServer();
              }

          }

          package com._rmi;

          import java.rmi.Naming;

          public class CalculatorClient {

              
          /**
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  
          try {
                      Calculator c 
          = (Calculator) Naming
                              .lookup(
          "rmi://localhost/CalculatorService");
                      
                      System.out.println( c.add(
          1,2) );
                      System.out.println( c.sub(
          1,2) );
                      System.out.println( c.mul(
          1,2) );
                      System.out.println( c.div(
          1,2) );
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }

              }

          }


          posted on 2011-01-10 18:27 此號已被刪 閱讀(402) 評論(0)  編輯  收藏 所屬分類: JAVA

          導航

          統計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜春市| 赣州市| 林芝县| 高雄市| 察哈| 定兴县| 安泽县| 循化| 柳江县| 体育| 开远市| 张北县| 文水县| 于都县| 柳江县| 罗甸县| 乌鲁木齐市| 邯郸县| 确山县| 龙里县| 万宁市| 佛冈县| 蓝山县| 安吉县| 凤翔县| 岑溪市| 福州市| 新余市| 喀喇沁旗| 隆德县| 青神县| 彰武县| 阳泉市| 河池市| 阿城市| 广水市| 达拉特旗| 沐川县| 玛沁县| 招远市| 惠水县|