Spec-Zone.ru › OpenJDK 21

Класс 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 может быть установлена только один раз. Примечание: RMISocketFactory может быть установлен только в том случае, если текущий менеджер безопасности разрешает установку фабрики сокетов; в противном случае будет брошено исключение SecurityException.
Параметры:
fac - фабрика сокетов
Исключение:
IOException - если фабрика сокетов RMI уже установлена
SecurityException - если менеджер безопасности существует и его метод checkSetFactory не разрешает операцию.
С момента:
1.1
См. также:
  • getSocketFactory()
  • SecurityManager.checkSetFactory()

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 попытается повторно создать серверный сокет.

Если существует менеджер безопасности, этот метод сначала вызывает метод checkSetFactory менеджера безопасности, чтобы убедиться, что операция разрешена. Это может привести к исключению SecurityException.

Параметры:
fh - обработчик ошибок
Исключение:
SecurityException - если менеджер безопасности существует и его метод checkSetFactory не разрешает операцию.
С момента:
1.1
См. также:
  • getFailureHandler()
  • RMIFailureHandler.failure(Exception)

getFailureHandler

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

© 1993, 2023, 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/21/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html

Spec-Zone.ru

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