免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

使用java編寫一個(gè)rmi的方法-創(chuàng)新互聯(lián)

小編給大家分享一下使用java編寫一個(gè)rmi的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、成都全網(wǎng)營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式網(wǎng)站建設(shè)手機(jī)網(wǎng)站制作、微商城、網(wǎng)站托管及成都網(wǎng)站改版、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為木包裝箱行業(yè)客戶提供了網(wǎng)站營銷服務(wù)。

 RMI 指的是遠(yuǎn)程方法調(diào)用 (Remote Method Invocation)。它是一種機(jī)制,能夠讓在某個(gè) Java虛擬機(jī)上的對象調(diào)用另一個(gè) Java 虛擬機(jī)中的對象上的方法。可以用此方法調(diào)用的任何對象必須實(shí)現(xiàn)該遠(yuǎn)程接口。

調(diào)用這樣一個(gè)對象時(shí),其參數(shù)為 "marshalled" 并將其從本地虛擬機(jī)發(fā)送到遠(yuǎn)程虛擬機(jī)(該遠(yuǎn)程虛擬機(jī)的參數(shù)為 "unmarshalled")上。該方法終止時(shí),將編組來自遠(yuǎn)程機(jī)的結(jié)果并將結(jié)果發(fā)送到調(diào)用方的虛擬機(jī)。如果方法調(diào)用導(dǎo)致拋出異常,則該異常將指示給調(diào)用方。

提供遠(yuǎn)端訪問的時(shí)候,我們首先需要定義遠(yuǎn)端能夠訪問哪些東西,在Java中,定義這類接口需要實(shí)現(xiàn)Remote接口

public interface Business extends Remote{
     public String echo(String msg) throws RemoteException;
}

定義完接口之后,這些功能是需要我們自己在Server端實(shí)現(xiàn)的,因此,聲明一個(gè)類實(shí)現(xiàn)我們提供接口。

public class BusinessImpl implements Business{

    @Override
    public String echo(String msg) throws RemoteException {
        if("quit".equalsIgnoreCase(msg)) {
            System.out.println("Server will be shutdown");
            System.exit(0);
        }
        System.out.println("Message from client:"+msg);
        return "Server response:"+msg;
    }
}

實(shí)現(xiàn)完這個(gè)方法之后,有一個(gè)問題是,怎么運(yùn)行,既然是遠(yuǎn)端訪問,肯定得有端口號,肯定得有實(shí)例,所以我們還需要注冊我們的代碼

public class Server {

    public static final String SERVER_REGISTER_NAME = "BusineeDemo";
    
    public static void main(String[] args) throws RemoteException {
        int port = 2016;
        Business business = new BusinessImpl();
        UnicastRemoteObject.exportObject(business,port);
        Registry registry = LocateRegistry.createRegistry(1099);
        registry.rebind(SERVER_REGISTER_NAME, business);
    }
}

這里有兩個(gè)Java的類:UnicastRemoteObject和LocateRegistry

一個(gè)接口:Registry

Registry接口:對簡單的遠(yuǎn)端對象提供一個(gè)遠(yuǎn)端接口用于提供存儲和獲取遠(yuǎn)端對象的引用,而這些是通過任意的String類型的變量名稱獲取,bind,unbind,rebind方法是用于更改注冊的這些名稱,lookup和list方法是用于查詢當(dāng)前當(dāng)前已經(jīng)綁定的對象。

UnicastRemoteObject類:用于導(dǎo)出一個(gè)遠(yuǎn)端對象

LocateRegistry類:是一個(gè)用來獲得遠(yuǎn)端調(diào)用對象引用的輔助類程序,主要是在一個(gè)特定的IP上構(gòu)建一個(gè)遠(yuǎn)端對象來接受來自特定端口的回調(diào)。

簡單的服務(wù)端完成了,現(xiàn)在來看客戶端:

客戶端代碼就更加簡單,前面我們提到我們可以通過Registry的lookup方法來獲取當(dāng)前已經(jīng)綁定的服務(wù),所以很自然,我們首先要獲得這個(gè)Registry

public class Client {

    public static void main(String[] args) throws RemoteException, NotBoundException {
        // Registry registry = LocateRegistry.getRegistry("localhost");
        Registry registry = LocateRegistry.getRegistry("localhost", 1099);
        Business business = (Business) registry.lookup(Server.SERVER_REGISTER_NAME);
        System.out.println(business.echo("Hello Server"));
    }
}

以上是使用java編寫一個(gè)rmi的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章題目:使用java編寫一個(gè)rmi的方法-創(chuàng)新互聯(lián)
本文地址:http://newbst.com/article34/dggsse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)網(wǎng)站策劃Google動(dòng)態(tài)網(wǎng)站品牌網(wǎng)站建設(shè)微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)