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、編寫授權(quán)文件policy.txt
          5、啟動服務(wù)器:開一個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)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 北票市| 婺源县| 忻城县| 海南省| 垦利县| 英吉沙县| 大埔区| 新郑市| 兴安县| 格尔木市| 察隅县| 凯里市| 隆尧县| 保山市| 镇康县| 绥江县| 桐庐县| 新干县| 翁牛特旗| 博兴县| 长汀县| 彰化县| 丹巴县| 任丘市| 岳阳市| 烟台市| 灯塔市| 石屏县| 柳江县| 厦门市| 越西县| 泸州市| 太仆寺旗| 宜君县| 太原市| 江川县| 崇州市| 青神县| 缙云县| 双牌县| 铁岭市|