亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JavaRMI入門實戰

2019-11-18 12:41:48
字體:
來源:轉載
供稿:網友

  為通過網絡執行其他機器上的代碼,傳統的方法不僅難以學習,而且易出錯。解決這個問題的最佳方法是:某些對象正好位于另一臺機器,我們可以發送一條消息,并獲得返回結果,就像位于自己的本機器一樣。java遠程方法調用(RMI)特性使客戶機上運行的程序可以調用遠程服務器上的對象。遠程方法調用特性使Java編程人員能夠在網絡環境中分布操作。
  
  下面介紹一下必要的步驟,創建自己的RMI對象。
  
  一、遠程接口概念:
  RMI對接口有著強烈的依靠。在需要創建一個遠程對象的時候,我們通過傳遞一個接口來隱藏基層的實施細節。所以客戶得到遠程對象的一個句柄正好同一些本地的根代碼連接,有后者負責通過網絡通信。但我們并不關心這些事情,通過自己的接口句柄發送消息即可。
  
  創建一個遠程接口時,必須遵守下列規則:
  
  1) 遠程接口必須為public屬性(不能有“包訪問”;也就是說,他不能是“友好的”)。否則,一旦客戶試圖裝載一個實現了遠程接口的遠程對象,就會得到一個錯誤。
  
  2) 遠程接口必須擴展接口java.rmi.Remote。
  
  3) 除與應用程序本身有關的違例,遠程接口中的每個方法都必須在自己的throws從句中聲明java.rmi.RemoteException.
  
  4) 作為參數或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠程接口,不可聲明為實施類。
  
  下面是一個遠程接口示例,
  
  //PerfectTimeI.java
  
  //The PerfectTime remote interface
  
  package test;
  
  import java.rmi.*;
  
  public interface PerfectTimeI extends Remote {
  
    long getPerfectTime() throws RemoteException;
  
  }
  
  它表面上與其他的接口類似,只是對Remote進行了擴展,而且所有的方法都會“擲”出RemoteException.接口和方法都是Public的。
  
  編譯PerfectTimeI.java,生成PerfectTimeI.class(test是包,編譯時注重路徑)
  
  G:/RMI>javac test/PerfectTimeI.java
  
  二、遠程接口的實施:
  服務器必須包含一個擴展了UnicastRemoteObject類,并實現遠程接口。這個類也可以含有附加的方法,但客戶只能使用遠程接口中的方法。因為客戶是指向接口的一個句柄,而不是它的哪個類。
  
  必須為遠程對象定義構件器,即使只預備定義一個默認構件器,用它調用基礎類構件器。必須把它明確地編寫出來,因為它必須“擲”出RemoteException違例。
  
  下面列出遠程接口PerfectTime的事實過程:他代表精確計時服務
  
  //PerfectTime.java
  
  //The implementation of the PerfectTime remote object
  
  package test;
  
  import java.net.*;
  
  import java.rmi.*;
  
  import java.rmi.registry.*;
  
  import java.rmi.server.*;
  
  public class PerfectTime extends UnicastRemoteObject implements PerfectTimeI
  
  {
  
  //默認構件器,也要“擲”出RemoteException違例。
  
    public PerfectTime() throws RemoteException {
  
      super();
  
    }
  
  public long getPerfectTime() throws RemoteException {
  
    return System.currentTimeMillis();
  
  }
  
  public static void main(String[] args) {
  
  /*創建和安裝一個安全治理器,令其支持RMI.作為Java開發包的一部分,適用于RMI唯一一個是RMISecurityManager.*/
  
    System.setSecurityManager(new RMISecurityManager());
  
    try {
  
    /*創建遠程對象的一個或多個實例,下面是PerfectTime對象*/
  
      PerfectTime pt = new PerfectTime();
  
    /*向RMI遠程對象注冊表注冊至少一個遠程對象。一個遠程對象擁有的方法即可生成指向其他遠程對象的句柄,這樣,客戶到注冊表里訪問一次,得到第一個遠程對象即可.*/
  
      Naming.bind("PerfectTime", pt);
  
      System.out.  
    } catch (Exception e) {
  
      e.printStackTrace();
  
    }
  
  }
  
  }
  
  編譯PerfectTime.java,生成PerfectTime.class(test是包,編譯時注重路徑)
  
  G:/RMI>javac test/PerfectTime.java
  
  三、創建根和干:
   創建RemoteObject的主干和框架。要完成這個工作可使用rmic編譯器,rmic編譯器生成遠程對象的存根和骨架。存根(Stub)是遠程對象在客戶端的代理,它將RMI調用傳遞給服務器端的骨架(Skeleton),后者負責將該調用傳遞給實際的遠程方法輸入如下:
  
  G:/RMI>rmic -d G:/RMI test.PerfectTime
  
   執行這個命令,
  
  若rmic成功運行,test目錄里就會多出兩個新類:
  
  PerfectTime_Stub.class
  
  PerfectTime_Skel.class
  
  它們分別對應的是根(stub)和干(skeleton).
  
  四、使用遠程對象:
  RMI全部的宗旨就是可能簡化遠程接口對象的使用。我們客戶程序中要做的唯一一件額外事情是查找從服務器取回遠程接口。下面就是編寫的Java程序:將消息發給對象:
  
  //DisplayPerfectTime.java
  
  //Users remote object PerfectTime
  
  package test;
  
  import java.rmi.*;
  
  import java.rmi.registry.*;
  
  public class DisplayPerfectTime {
  
  /*** DisplayPerfectTime 構造子注解。*/
  
  public DisplayPerfectTime() {
  
    super();
  
  }
  
  public static void main(String[] args) {
  
    System.setSecurityManager(new RMISecurityManager());
  
    try {
  
      PerfectTimeI t = (PerfectTimeI) Naming.lookup("PerfectTime");
  
      for (int i = 0; i < 10; i++) {
  
        System.out.println("PerfectTime:" + t.getPerfectTime());
  
      }
  
    } catch (Exception e) {
  
      e.printStackTrace();
  
    }
  
  }
  
  }
  
  編譯DisplayPerfectTime.java.
  
  G:/RMI>javac test/DisplayPerfectTime.java
  
  五、啟動注冊并運行代碼:
  在運行PerfectTime類和DisplayPectTime類之前,用戶必須首先在將要宿主PerfectTime的計算機上啟動RMI注冊(Registry)程序,即使將要運行PerfectTime的計算機與運行DisplayPerfectTime的是同一臺機器,這一步也是必須的。注冊表服務器的名字是rmiregistry.在32位Windows環境中,可使用: start rmiregistry 令其在后臺運行。然后分別開兩個不同的進程運行Server端和Client端:啟動注冊表服務器:
  
  G:/RMI>start rmiregistry
  
  綁定PerfectTime到注冊,運行服務端程序:在Windows下,輸入下列命令,在后臺啟動PerfectTime程序:
  
  G:/RMI>java test.PerfectTime
  
  Ready to do Time
  
  運行客戶端程序:如下
  
  G:/RMI>java test.DisplayPerfectTime
  
  PerfectTime:961722589649
  
  PerfectTime:961722589669
  
  PerfectTime:961722589679
  
  PerfectTime:961722589679
  
  PerfectTime:961722589689
  
  PerfectTime:961722589689
  
  PerfectTime:961722589689
  
  PerfectTime:961722589699
  
  PerfectTime:961722589699

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中日韩美女免费视频网站在线观看| 国产精品美女视频网站| 国产成人av网址| 在线精品视频视频中文字幕| 亚洲无线码在线一区观看| 欧美高清视频在线播放| 日韩免费av片在线观看| 91国语精品自产拍在线观看性色| 欧美日韩亚洲国产一区| 在线日韩精品视频| 伊人久久大香线蕉av一区二区| 九九久久精品一区| 中文字幕亚洲一区在线观看| 欧美午夜女人视频在线| 麻豆国产精品va在线观看不卡| 欧洲美女7788成人免费视频| 91av视频在线播放| 性欧美xxxx视频在线观看| 亚洲精品一区av在线播放| 亚洲无亚洲人成网站77777| 精品久久久久久久久中文字幕| 成人亚洲激情网| 青青久久av北条麻妃海外网| 视频直播国产精品| 按摩亚洲人久久| 97av在线播放| 久久精品欧美视频| 性欧美激情精品| 亚洲欧美国产精品久久久久久久| 精品国产精品三级精品av网址| 亚洲免费中文字幕| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久久搜索| 有码中文亚洲精品| 成人免费观看49www在线观看| 国产精品久久久久久婷婷天堂| 亚洲免费伊人电影在线观看av| 亚洲摸下面视频| 国产精品久久久久久久久借妻| 国产精品久久久久久亚洲影视| www.亚洲天堂| 亚洲三级黄色在线观看| 色无极影院亚洲| 亚洲欧美中文另类| 久久免费少妇高潮久久精品99| 日日摸夜夜添一区| 久热在线中文字幕色999舞| 亚洲电影免费观看高清| 51ⅴ精品国产91久久久久久| 亚洲欧美中文另类| 日韩电视剧在线观看免费网站| 一区二区三区日韩在线| 69久久夜色精品国产69| 亚洲视频在线免费看| 欧美一区二区.| 国产精品第七十二页| 国产精品久久久久久久久久99| 欧美又大又硬又粗bbbbb| 国产日韩一区在线| 日韩成人在线视频| 一个色综合导航| 精品久久久久久久久久| 欧美日韩国产综合新一区| 国产精品久久久久久av福利软件| 一区二区成人精品| 欧美色道久久88综合亚洲精品| 欧美日韩国内自拍| 亚洲japanese制服美女| 免费99精品国产自在在线| 久久91亚洲人成电影网站| 奇米4444一区二区三区| 亚洲欧美精品在线| 亚洲成人久久久| 国内精品美女av在线播放| 欧美亚洲国产另类| 欧美日韩一区二区精品| 亚洲aⅴ男人的天堂在线观看| 国产精品精品一区二区三区午夜版| 国产成人综合一区二区三区| 久久福利视频网| 欧美成人中文字幕| 7m精品福利视频导航| 91精品成人久久| 亚洲mm色国产网站| 亚洲成人免费在线视频| www.久久色.com| 97免费中文视频在线观看| 欧美激情欧美狂野欧美精品| 日韩免费不卡av| 国产精品电影观看| 日av在线播放中文不卡| 欧美在线www| 伊人男人综合视频网| 亚洲国产美女精品久久久久∴| 中文字幕亚洲欧美一区二区三区| 欧美激情在线观看视频| 久久综合伊人77777蜜臀| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲一二在线观看| 亚洲一区二区免费| 欧美亚洲日本黄色| 亚洲一区免费网站| 国产999精品久久久| 午夜精品99久久免费| 亚洲嫩模很污视频| 欧美性猛交99久久久久99按摩| 九九热最新视频//这里只有精品| 欧美性videos高清精品| 久久在线观看视频| 精品福利视频导航| 成人性教育视频在线观看| 色综合久久88| 高清欧美电影在线| 国产亚洲视频中文字幕视频| 国产精品偷伦免费视频观看的| 国产日韩在线视频| 激情av一区二区| 欧美日韩一区二区三区在线免费观看| 欧美在线视频网| 久热99视频在线观看| 97国产成人精品视频| 国产热re99久久6国产精品| 国产精品久久久久久五月尺| 色婷婷av一区二区三区在线观看| 欧美色videos| 欧美在线视频免费观看| 久久免费视频观看| 久久亚洲综合国产精品99麻豆精品福利| 亚洲免费人成在线视频观看| 国产精品成久久久久三级| 亚洲视频在线免费看| 亚洲女在线观看| 亚洲加勒比久久88色综合| 国产精品日韩在线观看| 欧美精品videossex性护士| 国产成人精品电影久久久| 91精品国产综合久久久久久久久| 亚洲精品一区二区网址| 亚洲精品成a人在线观看| 亚洲视频网站在线观看| 欧美疯狂xxxx大交乱88av| 日韩中文有码在线视频| 久久激情视频免费观看| 国产精品第三页| 91网在线免费观看| 国产精品一区电影| 欧美大片网站在线观看| 国产精品一区二区三区免费视频| 日韩大片免费观看视频播放| 国产精品中文久久久久久久| 亚洲四色影视在线观看| 亚洲视频一区二区三区| 欧美日韩美女在线观看| 国产91在线播放精品91| 欧美性69xxxx肥| 精品日本高清在线播放| 亚洲男人天天操| 亚洲精品视频免费| 国产在线视频2019最新视频| 91精品视频专区| 国产精品99免视看9| 欧美一区二区三区艳史| 亚洲美女在线观看| 久久精品99无色码中文字幕|