Spec-Zone.ru › OpenJDK 17

Класс 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()
  • 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()
  • failure(Exception)

getFailureHandler

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

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

Spec-Zone.ru

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