Класс 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://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html