JavaTM 2 Platform
Standard Ed. 6

java.rmi.server
類別 RMISocketFactory

java.lang.Object
  繼承者 java.rmi.server.RMISocketFactory
所有已實作的介面:
RMIClientSocketFactory, RMIServerSocketFactory

public abstract class RMISocketFactory
extends Object
implements RMIClientSocketFactory, RMIServerSocketFactory

RMISocketFactory 實例由 RMI 運行時使用,以便獲得 RMI 調用所需的客戶機和伺服器Socket。應用程序可以使用 setSocketFactory 方法來請求 RMI 運行時使用其Socket處理器實例而不是使用預設的實作。

所用的預設Socket處理器實作通過三層方法來創建客戶機Socket。首先,嘗試進行到遠端 VM 的直接Socket連接。如果該操作失敗(因防火牆的問題),則運行時使用具有伺服器顯式埠號號的 HTTP。如果防火牆不允許此型別的通信,則伺服器上的 cgi-bin 文稿的 HTTP 用於 POST(發送)該 RMI 調用。

從以下版本開始:
JDK1.1

建構子摘要
RMISocketFactory()
          建構一個 RMISocketFactory
 
方法摘要
abstract  ServerSocket createServerSocket(int port)
          在指定埠號上(埠號 0 指示匿名埠號)創建伺服器Socket。
abstract  Socket createSocket(String host, int port)
          創建連接到指定主機和埠號的客戶機Socket。
static RMISocketFactory getDefaultSocketFactory()
          返回對此 RMI 實作使用的預設Socket處理器的參考。
static RMIFailureHandler getFailureHandler()
          返回由 setFailureHandler 方法設置的Socket創建失敗的處理程序。
static RMISocketFactory getSocketFactory()
          返回由 setSocketFactory 方法設置的Socket處理器。
static void setFailureHandler(RMIFailureHandler fh)
          如果伺服器Socket創建失敗,則設置將由 RMI 運行時調用的 failure 處理程序。
static void setSocketFactory(RMISocketFactory fac)
          設置 RMI 從中獲取Socket的全體Socket處理器(如果遠端對象與指定客戶機和/或伺服器Socket處理器無關)。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

RMISocketFactory

public RMISocketFactory()
建構一個 RMISocketFactory

從以下版本開始:
JDK1.1
方法詳細資訊

createSocket

public abstract Socket createSocket(String host,
                                    int port)
                             throws IOException
創建連接到指定主機和埠號的客戶機Socket。

指定者:
介面 RMIClientSocketFactory 中的 createSocket
參數:
host - 主機名
port - 埠號號
返回:
連接到指定主機和埠號的Socket。
拋出:
IOException - 如果Socket創建過程中發生 I/O 錯誤
從以下版本開始:
JDK1.1

createServerSocket

public abstract ServerSocket createServerSocket(int port)
                                         throws IOException
在指定埠號上(埠號 0 指示匿名埠號)創建伺服器Socket。

指定者:
介面 RMIServerSocketFactory 中的 createServerSocket
參數:
port - 埠號號
返回:
指定埠號上的伺服器Socket
拋出:
IOException - 如果在伺服器Socket創建過程中發生 I/O 錯誤
從以下版本開始:
JDK1.1

setSocketFactory

public static void setSocketFactory(RMISocketFactory fac)
                             throws IOException
設置 RMI 從中獲取Socket的全體Socket處理器(如果遠端對象與指定客戶機和/或伺服器Socket處理器無關)。RMI Socket處理器只能設置一次。註:RMISocketFactory 只有在當前安全管理器允許設置Socket處理器的情況下設置;如果不允許,則拋出 SecurityException。

參數:
fac - Socket處理器
拋出:
IOException - 如果已經設置 RMI Socket處理器
SecurityException - 如果安全管理器存在並且其 checkPermission 方法不允許進行此操作。
從以下版本開始:
JDK1.1
另請參見:
getSocketFactory(), SecurityManager.checkSetFactory()

getSocketFactory

public static RMISocketFactory getSocketFactory()
返回由 setSocketFactory 方法設置的Socket處理器。如果尚未設置Socket處理器,則返回 null

返回:
Socket處理器
從以下版本開始:
JDK1.1
另請參見:
setSocketFactory(RMISocketFactory)

getDefaultSocketFactory

public static RMISocketFactory getDefaultSocketFactory()
返回對此 RMI 實作使用的預設Socket處理器的參考。這將是在 getSocketFactory 返回 null 時由 RMI 運行時使用的處理器。

返回:
預設的 RMI Socket處理器
從以下版本開始:
JDK1.1

setFailureHandler

public static void setFailureHandler(RMIFailureHandler fh)
如果伺服器Socket創建失敗,則設置將由 RMI 運行時調用的 failure 處理程序。預設情況下,如果沒有安裝故障處理程序且伺服器Socket創建失敗,則 RMI 運行時就嘗試重新創建伺服器Socket。

如果有安全管理器,則此方法首先調用安全管理器的 checkSetFactory 方法,以確保允許進行此操作。這可能會導致 SecurityException

參數:
fh - failure 處理程序
拋出:
SecurityException - 如果安全管理器存在並且其 checkSetFactory 方法不允許進行此操作。
從以下版本開始:
JDK1.1
另請參見:
getFailureHandler(), RMIFailureHandler.failure(Exception)

getFailureHandler

public static RMIFailureHandler getFailureHandler()
返回由 setFailureHandler 方法設置的Socket創建失敗的處理程序。

參數:
failure - 處理程序
從以下版本開始:
JDK1.1
另請參見:
setFailureHandler(RMIFailureHandler)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only