Класс RMISocketFactory
- Все реализованные интерфейсы:
-
RMIClientSocketFactory,RMIServerSocketFactory
public abstract class RMISocketFactory extends Object implements RMIClientSocketFactory, RMIServerSocketFactory
RMISocketFactory используется в RMI-среде для получения сокетов клиента и сервера для вызовов RMI. Приложение может использовать метод setSocketFactory, чтобы потребовать, чтобы RMI-среда использовала его экземпляр фабрики сокетов вместо стандартной реализации. Стандартная реализация фабрики сокетов создает прямое сокет-соединение с удалённым узлом.
Стандартная реализация фабрики сокетов создаёт сокеты сервера, привязанные к универсальному адресу, принимающему запросы со всех сетевых интерфейсов.
- Примечание реализации:
-
Можно использовать класс
RMISocketFactoryдля создания сокета сервера, привязанного к определённому адресу, ограничивая происхождение запросов. Например, следующий код реализует фабрику сокетов, которая привязывает сокеты сервера к IPv4-адресу обратной петли. Это ограничивает RMI обработкой запросов только с локального узла.
Установите системную переменнуюclass LoopbackSocketFactory extends RMISocketFactory { public ServerSocket createServerSocket(int port) throws IOException { return new ServerSocket(port, 5, InetAddress.getByName("127.0.0.1")); } public Socket createSocket(String host, int port) throws IOException { // just call the default client socket factory return RMISocketFactory.getDefaultSocketFactory() .createSocket(host, port); } } // ... RMISocketFactory.setSocketFactory(new LoopbackSocketFactory());java.rmi.server.hostnameна значение127.0.0.1, чтобы гарантировать, что сгенерированные заглушки подключаются к правильному сетевому интерфейсу. - С:
- 1.1
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RMISocketFactory() |
Создаёт экземпляр класса RMISocketFactory. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract ServerSocket |
createServerSocket |
Создаёт сокет сервера на указанном порту (порт 0 указывает анонимный порт). |
abstract Socket |
createSocket |
Создаёт сокет клиента, подключённый к указанному узлу и порту. |
static RMISocketFactory |
getDefaultSocketFactory() |
Возвращает ссылку на стандартную фабрику сокетов, используемую этим RMI-реализацией. |
static RMIFailureHandler |
getFailureHandler() |
Возвращает обработчик сбоев при создании сокета, установленный методом setFailureHandler. |
static RMISocketFactory |
getSocketFactory() |
Возвращает фабрику сокетов, установленную методом setSocketFactory. |
static void |
setFailureHandler |
Устанавливает обработчик сбоев, который будет вызываться RMI-средой, если создание сокета сервера завершается ошибкой. |
static void |
setSocketFactory |
Устанавливает глобальную фабрику сокетов, из которой RMI получает сокеты (если удалённый объект не связан с конкретной фабрикой сокета клиента и/или сервера). |
Подробное описание конструкторов
RMISocketFactory
public RMISocketFactory()
RMISocketFactory.- С:
- 1.1
Подробное описание методов
createSocket
public abstract Socket createSocket(String host, int port) throws IOException
- Указано в:
-
createSocketв интерфейсеRMIClientSocketFactory - Параметры:
-
host- имя узла -
port- номер порта - Возвращает:
- сокет, подключённый к указанному узлу и порту.
- Издаёт исключение:
-
IOException- если при создании сокета произошла ошибка ввода/вывода - С:
- 1.1
createServerSocket
public abstract ServerSocket createServerSocket(int port) throws IOException
- Указано в:
-
createServerSocketв интерфейсеRMIServerSocketFactory - Параметры:
-
port- номер порта - Возвращает:
- сокет сервера на указанном порту
- Издаёт исключение:
-
IOException- если при создании сокета сервера произошла ошибка ввода/вывода - С:
- 1.1
setSocketFactory
public static void setSocketFactory(RMISocketFactory fac) throws IOException
- Параметры:
-
fac- фабрика сокета - Издаёт исключение:
-
IOException- если RMI-фабрика сокета уже установлена - С:
- 1.1
- См. также:
getSocketFactory
public static RMISocketFactory getSocketFactory()
setSocketFactory. Возвращает null, если никакая фабрика сокетов не была установлена.- Возвращает:
- фабрику сокетов
- С:
- 1.1
- См. также:
getDefaultSocketFactory
public static RMISocketFactory getDefaultSocketFactory()
getSocketFactory возвращает null.- Возвращает:
- стандартную RMI-фабрику сокетов
- С:
- 1.1
setFailureHandler
public static void setFailureHandler(RMIFailureHandler fh)
- Параметры:
-
fh- обработчик сбоев. - С:
- 1.1
- См. также:
getFailureHandler
public static RMIFailureHandler getFailureHandler()
setFailureHandler.- Возвращает:
- обработчик сбоев
- С:
- 1.1
- См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html