Класс SocketFactory
- java.lang.Object
-
- javax.net.SocketFactory
- Прямые известные подклассы:
- SSLSocketFactory
public abstract class SocketFactory extends Object
Этот класс создает сокеты. Он может быть расширен другими фабриками, которые создают определённые подклассы сокетов и, таким образом, обеспечивают общий механизм добавления общедоступной функциональности на уровне сокетов.
Фабрики сокетов — простой способ захватить различные политики, связанные с создаваемыми сокетами, создавая такие сокеты таким образом, что для этого не требуется специальная настройка кода, который запрашивает сокеты:
- Благодаря полиморфизму как фабрик, так и сокетов, разные типы сокетов могут использоваться одним и тем же кодом приложения, просто передавая ему разные типы фабрик.
- Сами фабрики могут настраиваться с помощью параметров, используемых при создании сокета. Например, фабрики можно настраивать для возврата сокетов с различными таймаутами сетевых операций или уже настроенными параметрами безопасности.
- Сокеты, возвращаемые приложению, могут быть подклассами java.net.Socket, что позволит им напрямую предоставлять новые API для функций, таких как сжатие, безопасность, маркировка записей, сбор статистики или туннелирование через брандмауэр.
Классы фабрик задаются механизмами конфигурации, специфичными для среды. Например, метод getDefault может возвращать фабрику, подходящую для конкретного пользователя или аплета, а фреймворк может использовать настроенную фабрику для своих целей.
- С:
- 1.4
- См. также:
ServerSocketFactory
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
SocketFactory() Создаёт |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Socket |
createSocket() Создаёт несвязанный сокет. |
abstract Socket |
createSocket(InetAddress host,
int port) Создаёт сокет и подключает его к указанному номеру порта по указанному адресу. |
abstract Socket |
createSocket(InetAddress address,
int port,
InetAddress localAddress,
int localPort) Создаёт сокет и подключает его к указанному удалённому адресу по указанному удалённому порту. |
abstract Socket |
createSocket(String host,
int port) Создаёт сокет и подключает его к указанному удалённому хосту по указанному удалённому порту. |
abstract Socket |
createSocket(String host,
int port,
InetAddress localHost,
int localPort) Создаёт сокет и подключает его к указанному удалённому хосту по указанному удалённому порту. |
static SocketFactory |
getDefault() Возвращает копию стандартной фабрики сокетов среды. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
SocketFactory
protected SocketFactory()
Создаёт SocketFactory.
Методы
getDefault
public static SocketFactory getDefault()
Возвращает копию заводского сокета по умолчанию для среды.
- Возвращает:
- заводской сокет по умолчанию
SocketFactory
createSocket
public Socket createSocket()
throws IOException Создаёт неподключённый сокет.
- Возвращает:
- неподключённый сокет
- Выбрасывает:
-
IOException- если сокет создать не удалось - См. также:
-
Socket.connect(java.net.SocketAddress),Socket.connect(java.net.SocketAddress, int),Socket()
createSocket
public abstract Socket createSocket(String host,
int port)
throws IOException,
UnknownHostException Создаёт сокет и подключает его к указанному удалённому хосту на указанном удалённом порту. Этот сокет настраивается с использованием параметров сокета, установленных для этого фабричного объекта.
Если есть менеджер безопасности, его метод checkConnect вызывается с адресом хоста и port в качестве аргументов. Это может привести к исключению SecurityException.
- Параметры:
-
host- имя хоста сервера, к которому необходимо подключиться, илиnullдля адреса обратной связи. -
port- порт сервера - Возвращает:
- созданный
Socket - Выбрасывает:
-
IOException- если при создании сокета произошла ошибка ввода-вывода -
SecurityException- если существует менеджер безопасности, и его методcheckConnectне разрешает операцию. -
UnknownHostException- если хост неизвестен -
IllegalArgumentException- если параметр порта находится вне допустимого диапазона (от 0 до 65535 включительно). - См. также:
-
SecurityManager.checkConnect(java.lang.String, int),Socket(String, int)
createSocket
public abstract Socket createSocket(String host,
int port,
InetAddress localHost,
int localPort)
throws IOException,
UnknownHostException Создаёт сокет и подключает его к указанному удалённому хосту на указанном удалённом порту. Сокет также будет привязан к локальному адресу и порту. Этот сокет настраивается с использованием параметров сокета, установленных для этого фабричного объекта.
Если есть менеджер безопасности, его метод checkConnect вызывается с адресом хоста и port в качестве аргументов. Это может привести к исключению SecurityException.
- Параметры:
-
host- имя хоста сервера, к которому необходимо подключиться, илиnullдля адреса обратной связи. -
port- порт сервера -
localHost- локальный адрес, к которому привязан сокет -
localPort- локальный порт, к которому привязан сокет - Возвращает:
- созданный
Socket - Выбрасывает:
-
IOException- если при создании сокета произошла ошибка ввода-вывода -
SecurityException- если существует менеджер безопасности, и его методcheckConnectне разрешает операцию. -
UnknownHostException- если хост неизвестен -
IllegalArgumentException- если параметр порта или локального порта находится вне допустимого диапазона (от 0 до 65535 включительно). - См. также:
-
SecurityManager.checkConnect(java.lang.String, int),Socket(String, int, java.net.InetAddress, int)
createSocket
public abstract Socket createSocket(InetAddress host,
int port)
throws IOException Создаёт сокет и подключает его к указанному порту на указанном адресе. Этот сокет настраивается с использованием параметров сокета, установленных для этого фабричного объекта.
Если есть менеджер безопасности, его метод checkConnect вызывается с адресом хоста и port в качестве аргументов. Это может привести к исключению SecurityException.
- Параметры:
-
host- хост сервера -
port- порт сервера - Возвращает:
- созданный
Socket - Выбрасывает:
-
IOException- если при создании сокета произошла ошибка ввода-вывода -
SecurityException- если существует менеджер безопасности, и его методcheckConnectне разрешает операцию. -
IllegalArgumentException- если параметр порта находится вне допустимого диапазона (от 0 до 65535 включительно). -
NullPointerException- еслиhostравно null. - См. также:
-
SecurityManager.checkConnect(java.lang.String, int),Socket(java.net.InetAddress, int)
createSocket
public abstract Socket createSocket(InetAddress address,
int port,
InetAddress localAddress,
int localPort)
throws IOException Создаёт сокет и подключает его к указанному удалённому адресу по указанному удалённому порту. Сокет также будет привязан к локальному адресу и порту. Сокет настраивается с помощью опций сокета, установленных для этого фабричного объекта.
Если существует менеджер безопасности, его метод checkConnect вызывается с адресом хоста и port в качестве аргументов. Это может привести к исключению SecurityException.
- Параметры:
-
address- сетевой адрес сервера -
port- порт сервера -
localAddress- сетевой адрес клиента -
localPort- порт клиента - Возвращает:
- сокет
Socket - Исключения:
-
IOException- если при создании сокета произошла ошибка ввода-вывода -
SecurityException- если менеджер безопасности существует и его методcheckConnectне разрешает операцию. -
IllegalArgumentException- если параметр порта или параметр локального порта находится вне указанного диапазона допустимых значений порта, который составляет от 0 до 65535 включительно. -
NullPointerException- еслиaddressимеет значение null. - См. также:
-
SecurityManager.checkConnect(java.lang.String, int),Socket(java.net.InetAddress, int, java.net.InetAddress, int)
© 1993, 2020, 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.