2015-08-23 79 views
-1

我公司開發的Java RMI的程序如下圖所示,現在我想補充的是唯一的事情,很快就當客戶端發送請求到服務器,服務器應捕獲客戶端的細節是客戶的詳細信息,如IP,請告知我怎樣才能添加監聽器,這樣的時刻客戶端向服務器發送應捕捉細節的要求..傳遞客戶信息到RMI服務器通過RMI聽衆

下面

是我的計劃..

接口: -

import java.rmi.*; 
public interface AddServerInterface extends Remote { 
    public int sum(int a,int b); 
} 

實現類: -

import java.rmi.*; 
import java.rmi.server.*; 
public class Adder extends UnicastRemoteObject implements AddServerInterface { 
    Adder()throws RemoteException{ 
     super(); 
    } 

    public int sum(int a, int b) { 
     return a+b; 
    } 
} 

RMI服務: -

import java.rmi.*; 
import java.rmi.registry.*; 
public class AddServer { 

    public static void main(String args[]) { 
     try{ 
      AddServerInterface addService=new Adder(); 
      Naming.rebind("AddService",addService); 
      //addService object is hosted with name AddService. 

     } catch(Exception e){System.out.println(e);} 
    } 
} 

客戶應用: -

import java.rmi.*; 
public class Client { 
    public static void main(String args[]) { 
     try{ 
      AddServerInterface st=(AddServerInterface)Naming.lookup("rmi://"+args[0]+"/AddService"); 
      System.out.println(st.sum(25,8)); 
     } catch(Exception e){System.out.println(e);} 
    } 
} 

請告知我怎樣才能添加的功能通過客戶端信息服務器

回答

0

如果你想從客戶端到服務器的IP地址,除了通過額外的信息,您可以展開遠程接口和方法,並傳遞信息作爲附加參數。

來自客戶端的IP信息對於RMI服務器不是必需的,因爲RMI遠程服務器端的RemoteServer.getClientHost()返回進行遠程呼叫的客戶端的IP。

1

服務器應該捕獲客戶端的細節,是通過RemoteServer.getClientHost()遠程方法調用中的客戶端的詳細信息,如IP

客戶端的IP地址可用。如果你想了解其他細節,你只需告訴我們它們是什麼。

請告知我怎樣才能添加監聽器,這樣的時刻客戶端向服務器發送應捕捉細節

至於客戶端的IP地址相關的請求,你並不需要一個傾聽者。你可能不需要任何你想做的事情的監聽器:見下文。

這和你prior question氣味強烈的XY問題。你究竟想要完成什麼?這聽起來對我來說就像是一個Remote Session Pattern的案例,但是直到你進一步信任它,這是不可能的。