Spec-Zone.ru › OpenJDK 24

Класс RMISocketFactory

java.lang.Object
java.rmi.server.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(int port)
Создаёт сокет сервера на указанном порту (порт 0 указывает анонимный порт).
abstract Socket createSocket(String host, int port)
Создаёт сокет клиента, подключённый к указанному узлу и порту.
static RMISocketFactory getDefaultSocketFactory()
Возвращает ссылку на стандартную фабрику сокетов, используемую этим RMI-реализацией.
static RMIFailureHandler getFailureHandler()
Возвращает обработчик сбоев при создании сокета, установленный методом setFailureHandler.
static RMISocketFactory getSocketFactory()
Возвращает фабрику сокетов, установленную методом setSocketFactory.
static void setFailureHandler(RMIFailureHandler fh)
Устанавливает обработчик сбоев, который будет вызываться RMI-средой, если создание сокета сервера завершается ошибкой.
static void setSocketFactory(RMISocketFactory fac)
Устанавливает глобальную фабрику сокетов, из которой RMI получает сокеты (если удалённый объект не связан с конкретной фабрикой сокета клиента и/или сервера).

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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
Создаёт сокет сервера на указанном порту (порт 0 указывает анонимный порт).
Указано в:
createServerSocket в интерфейсе RMIServerSocketFactory
Параметры:
port - номер порта
Возвращает:
сокет сервера на указанном порту
Издаёт исключение:
IOException - если при создании сокета сервера произошла ошибка ввода/вывода
С:
1.1

setSocketFactory

public static void setSocketFactory(RMISocketFactory fac) throws IOException
Устанавливает глобальную фабрику сокетов, из которой RMI получает сокеты (если удалённый объект не связан с конкретной фабрикой сокета клиента и/или сервера). RMI-фабрика сокета может быть установлена только один раз.
Параметры:
fac - фабрика сокета
Издаёт исключение:
IOException - если RMI-фабрика сокета уже установлена
С:
1.1
См. также:
  • getSocketFactory()

getSocketFactory

public static RMISocketFactory getSocketFactory()
Возвращает фабрику сокетов, установленную методом setSocketFactory. Возвращает null, если никакая фабрика сокетов не была установлена.
Возвращает:
фабрику сокетов
С:
1.1
См. также:
  • setSocketFactory(RMISocketFactory)

getDefaultSocketFactory

public static RMISocketFactory getDefaultSocketFactory()
Возвращает ссылку на стандартную фабрику сокетов, используемую этой RMI-реализацией. Это будет фабрика, используемая RMI-средой, когда getSocketFactory возвращает null.
Возвращает:
стандартную RMI-фабрику сокетов
С:
1.1

setFailureHandler

public static void setFailureHandler(RMIFailureHandler fh)
Устанавливает обработчик сбоев, который будет вызываться RMI-средой, если создание сокета сервера завершается ошибкой. По умолчанию, если обработчик сбоев не установлен и создание сокета сервера завершается ошибкой, RMI-среда пытается повторно создать сокет сервера.
Параметры:
fh - обработчик сбоев.
С:
1.1
См. также:
  • getFailureHandler()
  • RMIFailureHandler.failure(Exception)

getFailureHandler

public static RMIFailureHandler getFailureHandler()
Возвращает обработчик сбоев при создании сокета, установленный методом setFailureHandler.
Возвращает:
обработчик сбоев
С:
1.1
См. также:
  • setFailureHandler(RMIFailureHandler)

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API