Natural

           

          [demo]創(chuàng)建一個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 此號已被刪 閱讀(393) 評論(0)  編輯  收藏 所屬分類: JAVA

          導航

          統(tǒng)計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 迁安市| 沛县| 舟曲县| 秦皇岛市| 江口县| 家居| 额尔古纳市| 罗定市| 潜江市| 建瓯市| 襄城县| 大安市| 临西县| 策勒县| 呼图壁县| 鄂尔多斯市| 邹城市| 青岛市| 扎鲁特旗| 安国市| 汉川市| 高阳县| 万载县| 宁夏| 阜新市| 贞丰县| 滦平县| 民权县| 邻水| 石林| 密山市| 临沭县| 安丘市| 象州县| 梁河县| 炉霍县| 民和| 松潘县| 新田县| 亳州市| 孙吴县|