Spec-Zone.ru › OpenJDK 25

Класс 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 получает сокеты (если удалённый объект не связан с определённой фабрикой клиентских и/или серверных сокетов).

Методы, объявленные в классе 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)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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