我在使用IIOP協議的CORBA中應用程序,我使用JDK 6的Java IDL組件,另一個ORB實現。CORBA ::使用IIOP獲取客戶端ORB地址和端口
以Java語言實現客戶端和服務器。
JDK ORB實現中有沒有辦法從 服務器(ORB)代碼中獲取客戶端ORB的主機和端口?
或者
有沒有辦法在使用IIOP協議,獲得客戶端的主機和端口?
這是我們正在做的客戶端的識別跟蹤誰請求
我在使用IIOP協議的CORBA中應用程序,我使用JDK 6的Java IDL組件,另一個ORB實現。CORBA ::使用IIOP獲取客戶端ORB地址和端口
以Java語言實現客戶端和服務器。
JDK ORB實現中有沒有辦法從 服務器(ORB)代碼中獲取客戶端ORB的主機和端口?
或者
有沒有辦法在使用IIOP協議,獲得客戶端的主機和端口?
這是我們正在做的客戶端的識別跟蹤誰請求
我不認爲有任何可移植的方式來做到這一點。也許對於你特定的ORB,我不知道。回想一下,CORBA會盡力隱藏應用程序中的傳輸細節。應用程序甚至可能不使用IIOP,因此在任何情況下都無法獲取TCP主機和端口信息。
您可能需要考慮將額外的標識符參數添加到您的IDL中,以便服務器可以識別客戶端。您還可以考慮讓客戶端在服務器上調用「註冊」功能,並且服務器會提供一個標識符,以便在隨後的調用中所有客戶端必須回傳給服務器。
此標識符可以像字符串或整數一樣簡單,也可以像服務器必須使用公鑰驗證的某種安全令牌那樣複雜。這一切都取決於您的應用程序的要求。
這取決於情況,但有時您需要從IOR中提取主機/端口以進行測試,記錄和調試。 IOR包含主機和端口,您只需要從IOR表示的字節數組中解碼即可。因此,只需從GNU Classpath中獲取CORBA規範和IorParser.java(大規模依賴)作爲示例,並在週末有時間進行解碼。)
如果您沒有時間作爲我,可以使用命令行工具與球體是未來:
對我來說,答案#5已經足夠好了。我使用Jacorb來開發基於Java的測試工具。但是接着PrintIOR需要org.jacorb.orb.ORB被org.omg.CORBA.ORB.init()實例化。因此,如果您被迫在同一個JVM中使用JDK ORB,這可能會非常棘手。
你能更好地解釋你的*問題嗎?我認爲你以不同的方式解決你的問題。 – Makah