RMI使用小例

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

1、定義一個接口(繼承Remote):

方法要拋RemoteException。

?

package rmi;


import java.rmi.RemoteException;


public interface IAdd extends java.rmi.Remote{

int add ( int a , int b ) throws RemoteException; ?

?

?

}

?

?

?

2、定義一個類作為服務端?(繼承UnicastRemoteObject ?,實現接口IAdd 、,Serializable):

構造和方法要拋RemoteException。

?

package rmi;

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;


public class AddServer extends java.rmi.server.UnicastRemoteObject implements IAdd?, Serializable{

public AddServer() throws RemoteException { ?
super();
}


public int add ( int a ,int b ) throws RemoteException {

return a+b ;
}

public static void main(String[] args) {


try { ?? ?
AddServer as = new AddServer(); ?
Registry registry = LocateRegistry.createRegistry(2500); ??

// ?取名 add
? ? ? ? ? ?registry.bind("add", as); ?

? ? ? ? ? ? ? // ?提示服務端開啟
? ? ? ? ? ??? ? ?System.out.println("AddServer Start..."); ?


} catch (Exception e) { ??
e.printStackTrace(); ??
} ?
}
}

?

3、測試類(作為客戶端)

package testdb;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import rmi.IAdd ;

public class Test {

? public static void main(String[] args) {

try {
// ?最后拼接的名字來自AddServer 類中取的名字。
IAdd ?add = ?(?IAdd )Naming.lookup("rmi://127.0.0.1:2500/add");

// ?測試加法運算
System.out.println( " a+b= " + add . add ( 2,3) );

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
} ??
? ? ?}
}

?

注:?IAdd ?add = ?(?IAdd?)Naming.lookup("rmi://127.0.0.1:2500/add"); ? 此行中?add 是來自服務端??registry.bind("add", as); ?中設置的名字:add 。

即:服務端??registry.bind(" remove ", as); ? ,那么客戶端就是??IAdd ?add = ?(?IAdd?)Naming.lookup("rmi://127.0.0.1:2500 /?remove?"); ? 。

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452288.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452288.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452288.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

產品經理和項目經理有哪些區別?

1.產品經理和項目經理的差異 首先,產品經理和項目經理的職責定義不太一樣。 產品經理是 Product Manager ,主要是負責市場調研、用戶研究并根據用戶的需求,定義和設計產品,然后考慮產品的商業模式、運營推廣方式等。接下來去推動…

09-完整性約束

本節重點: not null 與 defaultuniqueprimaryauto_incrementforeign key一、介紹 約束條件與數據類型的寬度一樣,都是可選參數 作用:用于保證數據的完整性和一致性 主要分為: PRIMARY KEY (PK) #標識該字段為該表的主鍵&#x…

fread rb與r,wb,w的區別

在fread時,"rb"與"r"對某些字符作用,是不同的; 文本模式和二進制模式讀取不一樣的 文本:讀: 遇到回車-換行(0D 0A),就會轉換為換行符0A 寫:遇到換行符0A,就會轉換為回車-換…

軟件正向工程

正向工程是通過實現語言的映射而把模型轉換為代碼的過程。正向工程也稱為革新或改造,這項活動不僅從現有程序中恢復設計信息,而且使用該信息去改變或重構現有系統,以提高其整體質量。 換句話說:一般工業產品開發是從確定預期功能…

學成在線--2.CMS前端頁面查詢開發

文章目錄0.思路總結1.創建CMS模塊的目錄架構2.創建頁面并配置路由1)在page目錄新建page_list.vue,擴展名為.vue。2)在cms的router下配置路由。3)在base目錄下的router導入cms模塊的路由3.使用Table組件完善頁面內容4.Api調用服務器…

java.util.IdentityHashMap.entrySet()方法實例

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 entrySet() 方法是用來獲取此映射中包含的映射關系的set視圖。 聲明 以下是java.util.IdentityHashMap.entrySet()方法的聲明。 publ…

URL轉微信可識別的二維碼

jquery.qrcode.js 是一個能夠在客戶端生成矩陣二維碼QRCode 的jquery插件 &#xff0c;使用它可以很方便的在頁面上生成二維條碼。 用法&#xff1a; 1、引入jquery.qrcode.min.js <script src"jquery.min.js"></script> <script src"jquery.qrc…

javascript數組及操作方法

數組及操作方法 數組就是一組數據的集合&#xff0c;javascript中&#xff0c;數組里面的數據可以是不同類型的。 定義數組的方法 //對象的實例創建 var aList new Array(1,2,3);//直接量創建 var aList2 [1,2,3,asd];操作數組中數據的方法 1、獲取數組的長度&#xff1a;aLi…

如何創建比C語言更快的編程語言?

【CSDN編譯整理】近日&#xff0c;beza1e1上發表了一篇博客《Faster than C》&#xff0c;在Hacker News和Reddit Programming上引發了開發者們的激烈討論。現將此文編譯&#xff0c;我們一起來探討下。 單從編程語言特性來判斷&#xff0c;雖然Fortran語言也以快而著稱&#…

面向對象方法學

面向對象技術強調在軟件開發過程中面向客觀世界或問題域中的事物&#xff0c;采用人類在認識客觀世界的過程中普遍運用的思維方法&#xff0c;直觀、自然地描述客觀世界中的有關事物。 面向對象的分析方法是利用面向對象的信息建模概念&#xff0c;如實體、關系、屬性等&#x…

學成在線--3.CMS頁面管理開發(自定義條件查詢)

文章目錄0.需求分析1.服務端--Dao2.服務端--Service3.服務端--Controller4.前端1&#xff09;page_list.vue中增加查詢表單2&#xff09;page_list.vue中添加數據模型對象3&#xff09;在鉤子方法中構建siteList站點列5.Api調用1&#xff09;修改 cms.js&#xff0c;向服務端傳…

動態生成表格、隱藏表格、選中刪除任意行、jquery、輸入驗證

PS&#xff1a; 游戲公司后臺開發&#xff0c;工作模式&#xff1a;996。 于是寫博客這事也荒廢了.... 想想還是寫一點吧。 呵呵&#xff0c;請不要笑話我注釋寫這么多&#xff0c;習慣了&#xff0c;我上班寫代碼都是有注釋的。 我建兩個相似的表是為了&#xff0c;給后臺使…

安裝 PrestaShop 1.6 - 詳細的安裝指南

2019獨角獸企業重金招聘Python工程師標準>>> 詳細的安裝指南 下載和解壓 PrestaShop 程序代碼包 你可以從 PrestaShop 官方下載最新的版本&#xff0c;下載地址為&#xff1a;http://www.prestashop.com/en/download. 這里你只有一個選項&#xff0c;只能下載最新的…

tinydate.js[v0.3] 新增了字符串格式化為日期對象的函數

更新說明 加入了String類型的擴展成員 convertToDate() 可以直接將 字符串格式的日期轉換為Date對象。加入了String類型的擴展成員 convertToTimeSpan() 可以將 字符串格式的日期轉換為TimeSpan對象。修復了日期格式化為字符串的format函數中的bug。tinydate.js v0.3 Date.prot…

面向對象方法學的四個要點

面向對象方法學的要點面向對象方法學的出發點和基本原則&#xff0c;是盡可能模擬人類習慣的思維方式&#xff0c;使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程&#xff0c;也就是使描述問題的問題空間(也稱為問題域)與實現解法的解空間(也稱為求解域)在…

學成在線--4.CMS頁面管理開發(新增頁面)

文章目錄1.定義新增頁面接口1&#xff09;在model工程中定義響應模型2&#xff09;在api工程中添加接口2.新增頁面服務端開發1&#xff09;Dao2&#xff09;Service3&#xff09;Controller3.新增頁面前端開發1&#xff09;創建page_add.vue2&#xff09;配置路由3&#xff09;…

嵌套For循環性能優化

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。1 案例描述某日&#xff0c;在JavaEye上看到一道面試題&#xff0c;題目是這樣的&#xff1a;請對以下的代碼進行優化 Java代碼 for (int …

docker-ce安裝

1、安裝 sudo yum -y install docker 2、加入開機自啟systemctl enable docker轉載于:https://www.cnblogs.com/runnerjack/p/8618524.html

python-study-17

復習 上節課復習1、什么是模塊模塊是一系列功能的集合體2、為何用模塊拿來&#xff08;內置或第三方的模塊&#xff09;主義&#xff0c;提升開發效率自定義模塊可以讓程序的各部分組件重用模塊內的功能3、如何用模塊大前提&#xff1a;模塊是被執行文件導入使用&#xff0c;模…

面向對象方法學的優點

1.與人類習慣的思維方法一致面向對象的軟件技術以對象為核心&#xff0c;用這種技術開發出的軟件系統由對象組成。對象是由描述內部狀態表示靜態屬性的數據&#xff0c;以及可以對這些數據施加的操作(對象的動態行為)&#xff0c;封裝在一起所構成的統一體。面向對象的設計方法…