Класс 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 |
Создает серверный сокет на указанном порту (порт 0 означает анонимный порт). |
abstract Socket |
createSocket |
Создает клиентский сокет, подключенный к указанному хосту и порту. |
static RMISocketFactory |
getDefaultSocketFactory() |
Возвращает ссылку на фабрику сокетов по умолчанию, используемую данной реализацией RMI. |
static RMIFailureHandler |
getFailureHandler() |
Возвращает обработчик ошибок создания сокетов, заданный методом setFailureHandler. |
static RMISocketFactory |
getSocketFactory() |
Возвращает фабрику сокетов, заданную методом setSocketFactory. |
static void |
setFailureHandler |
Задает обработчик ошибок, который будет вызван средой выполнения RMI в случае сбоя при создании серверного сокета. |
static void |
setSocketFactory |
Задает глобальную фабрику сокетов, из которой RMI получает сокеты (если удаленный объект не связан с определенной фабрикой клиентских и/или серверных сокетов). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API будет удален в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода для этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное количество реального времени. |
final void |
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
- Переопределяет:
-
createServerSocketв интерфейсеRMIServerSocketFactory - Параметры:
-
port— номер порта - Возвращает:
- серверный сокет на указанном порту
- Вызывает исключение:
-
IOException— если при создании серверного сокета произошла ошибка ввода-вывода - С версии:
- 1.1
setSocketFactory
public static void setSocketFactory(RMISocketFactory fac) throws IOException
- Параметры:
-
fac— фабрика сокетов - Вызывает исключение:
-
IOException— если фабрика сокетов RMI уже задана - С версии:
- 1.1
- См. также:
getSocketFactory
public static RMISocketFactory getSocketFactory()
setSocketFactory. Возвращает null, если фабрика сокетов не задана.- Возвращает:
- фабрика сокетов
- С версии:
- 1.1
- См. также:
getDefaultSocketFactory
public static RMISocketFactory getDefaultSocketFactory()
getSocketFactory возвращает null.- Возвращает:
- фабрика сокетов RMI по умолчанию
- С версии:
- 1.1
setFailureHandler
public static void setFailureHandler(RMIFailureHandler fh)
- Параметры:
-
fh— обработчик ошибок. - С версии:
- 1.1
- См. также:
getFailureHandler
public static RMIFailureHandler getFailureHandler()
setFailureHandler.- Возвращает:
- обработчик ошибок
- С версии:
- 1.1
- См. также:
© 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.