java rmi伺服器端用戶端傳輸資料執行個體教程,rmi執行個體教程
原文:java rmi伺服器端用戶端傳輸資料執行個體教程 java代碼:http://www.zuidaima.com/share/1550463269620736.htm
java rmi伺服器端用戶端傳輸資料執行個體教程
package com.zuidaima.rmi;import java.rmi.*;/***@author www.zuidaima.com**/public class ZuidaimaClient { public static void main(String[] args) { // 在伺服器端設定安全機制 /* if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } */ /* 預設為本地主機和預設連接埠 */ String host = "www.zuidaima.com:1199"; /* 帶輸入參數時,將host設定為指定主機 */ if (args.length > 0) host = args[0]; try { /* 根據指定的URL定位遠程實現對象 */ /* “h”是一個標識符,我們將用它指向實現“Hello”介面的遠程對象 */System.out.println(host+"****"); Hello h = (Hello) Naming.lookup("rmi://" + host + "/HelloServer"); System.out.println("實現“Hello”介面的遠程對象: " + h); System.out.println("我在用戶端,開始調用RMI伺服器端的'sayHello'方法"); System.out.println("歡迎, " + h.sayHello("www.zuidaima.com")); } catch (Exception ex) { System.out.println("錯誤 " + ex); } }}
標籤: RMI java 傳輸 教程話題: 網路編程 入門教程
RMI 怎實現同步資料傳遞
RMI,遠程方法調用(Remote Method Invocation)是Enterprise JavaBeans的支柱,是建立分布式Java應用程式的方便途徑。RMI是非常容易使用的,但是它非常的強大。
RMI的基礎是介面,RMI構架基於一個重要的原理:定義介面和定義介面的具體實現是分開的。下面我們通過具體的例子,建立一個簡單的遠程計算服務和使用它的客戶程式
一個正常工作的RMI系統由下面幾個部分組成:
● 遠程服務的介面定義
● 遠程服務介面的具體實現
● 樁(Stub)和架構(Skeleton)檔案
● 一個運行遠程服務的伺服器
● 一個RMI命名服務,它允許用戶端去發現這個遠程服務
● 類檔案的提供者(一個HTTP或者FTP伺服器)
● 一個需要這個遠程服務的用戶端程式
下面我們一步一步建立一個簡單的RMI系統。首先在你的機器裡建立一個新的檔案夾,以便放置我們建立的檔案,為了簡單起見,我們只使用一個檔案夾存放用戶端和服務端代碼,並且在同一個目錄下運行服務端和用戶端。
如果所有的RMI檔案都已經設計好了,那麼你需要下面的幾個步驟去產生你的系統:
1、 編寫並且編譯介面的Java代碼
2、 編寫並且編譯介面實現的Java代碼
3、 從介面實作類別中產生樁(Stub)和架構(Skeleton)類檔案
4、 編寫遠程服務的主運行程式
5、 編寫RMI的用戶端程式
6、 安裝並且運行RMI系統
1、 介面
第一步就是建立和編譯服務介面的Java代碼。這個介面定義了所有的提供遠程服務的功能,下面是來源程式:
//Calculator.java
//define the interface
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;
}
注意,這個介面繼承自Remote,每一個定義的方法都必須拋出一個RemoteException異常對象。
建立這個檔案,把它存放在剛才的目錄下,並且編譯。
>javac Calculator.java
2、 介面的具體實現
下一步,我們就要寫遠程服務的具體實現,這是一個CalculatorImpl類檔案:
//CalculatorImpl.java
//Implementation
import java.rmi.server.UnicastRemoteObject
public class CalculatorImpl extends UnicastRemoteObject implements......餘下全文>>
java 怎實現伺服器與客服端資料的傳遞
如果你學過網路基礎的話,應該知道現在流行的tcp/ip協議,Java支援的是網路層或ip層以上的操作。
有很多種傳遞的方法,Java SE裡面就有RMI方式,或Socket方式(分tcp和udp兩種)。這些都屬於C/S的方式。
另外Java EE裡面以B/S方式主要是用用戶端向伺服器端的servlet/jsp發起請求實現的,其底層用的是http協議,一種應用程式層的協議。
其實,應用程式層的其他協議,如ftp, telnet, 甚至webservice,都可以用Java來實現,根據你的需要選擇。一般學習Java基礎的時候都是從socket編程,開發tcp或udp的通訊程式的,其他的方式基本是在此方式基礎上擴充更適合對應的領域了。