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)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 莫力| 栾城县| 赤峰市| 乐陵市| 县级市| 泌阳县| 建湖县| 驻马店市| 余江县| 融水| 宕昌县| 嘉兴市| 清远市| 酒泉市| 祁连县| 仁寿县| 阿瓦提县| 阿克苏市| 兴仁县| 洪湖市| 溧水县| 宜川县| 什邡市| 邵武市| 托克逊县| 邻水| 蛟河市| 黄冈市| 白水县| 吉安县| 会理县| 凤城市| 梁平县| 汾西县| 邵阳市| 龙川县| 册亨县| 临泽县| 西吉县| 富川| 昭苏县|