Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API будет удален в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное количество реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное количество реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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