Spec-Zone.ru › OpenJDK 27

Класс SocketImpl

java.lang.Object
java.net.SocketImpl
Все реализуемые интерфейсы:
SocketOptions
public abstract class SocketImpl extends Object implements SocketOptions
Абстрактный класс SocketImpl является общим суперклассом всех классов, непосредственно реализующих сокеты. Он используется для создания как клиентских, так и серверных сокетов.
С момента версии:
1.0

Краткое описание полей

Модификатор и тип Поле Описание
protected InetAddress address
IP-адрес удалённого конца этого сокета.
protected FileDescriptor fd
Объект дескриптора файла для этого сокета.
protected int localport
Номер локального порта, к которому подключён этот сокет.
protected int port
Номер порта на удалённом узле, к которому подключён этот сокет.

Поля, объявленные в интерфейсе SocketOptions

IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
Модификатор и тип Поле Описание
static final int IP_MULTICAST_IF
Описание этой опции сокета см. в разделе StandardSocketOptions.IP_MULTICAST_IF.
static final int IP_MULTICAST_IF2
Эта опция используется для задания и получения исходящего интерфейса, через который отправляются многоадресные пакеты.
static final int IP_MULTICAST_LOOP
Описание этой опции сокета см. в разделе StandardSocketOptions.IP_MULTICAST_LOOP.
static final int IP_TOS
Описание этой опции сокета см. в разделе StandardSocketOptions.IP_TOS.
static final int SO_BINDADDR
Получает привязку локального адреса сокета.
static final int SO_BROADCAST
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_BROADCAST.
static final int SO_KEEPALIVE
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_KEEPALIVE.
static final int SO_LINGER
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_LINGER.
static final int SO_OOBINLINE
Если эта опция установлена, любые полученные через сокет срочные данные TCP будут передаваться через входной поток сокета.
static final int SO_RCVBUF
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_RCVBUF.
static final int SO_REUSEADDR
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_REUSEADDR.
static final int SO_REUSEPORT
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_REUSEPORT.
static final int SO_SNDBUF
Описание этой опции сокета см. в разделе StandardSocketOptions.SO_SNDBUF.
static final int SO_TIMEOUT
Эта опция используется для задания и получения значения тайм-аута при блокирующих операциях Socket: ServerSocket.accept() Socket InputStream.read() DatagramSocket.receive()
static final int TCP_NODELAY
Описание этой опции сокета см. в разделе StandardSocketOptions.TCP_NODELAY.

Краткое описание конструкторов

Конструктор Описание
SocketImpl()
Инициализирует новый экземпляр этого класса

Краткое описание методов

Модификатор и тип Метод Описание
protected abstract void accept(SocketImpl s)
Принимает соединение.
protected abstract int available()
Возвращает количество байтов, которые можно прочитать из этого сокета без блокировки.
protected abstract void bind(InetAddress host, int port)
Привязывает этот сокет к указанному локальному IP-адресу и номеру порта.
protected abstract void close()
Закрывает этот сокет.
protected abstract void connect(String host, int port)
Подключает этот сокет к указанному порту на узле с заданным именем.
protected abstract void connect(InetAddress address, int port)
Подключает этот сокет к указанному номеру порта на заданном узле.
protected abstract void connect(SocketAddress address, int timeout)
Подключает этот сокет к указанному номеру порта на заданном узле.
protected abstract void create(boolean stream)
Создаёт потоковый сокет.
protected FileDescriptor getFileDescriptor()
Возвращает значение поля fd этого сокета.
protected InetAddress getInetAddress()
Возвращает значение поля address этого сокета.
protected abstract InputStream getInputStream()
Возвращает входной поток для этого сокета.
protected int getLocalPort()
Возвращает значение поля localport этого сокета.
protected <T> T getOption(SocketOption<T> name)
Вызывается для получения параметра сокета.
protected abstract OutputStream getOutputStream()
Возвращает выходной поток для этого сокета.
protected int getPort()
Возвращает значение поля port этого сокета.
protected abstract void listen(int backlog)
Устанавливает максимальную длину очереди для входящих запросов на соединение к значению аргумента count.
protected abstract void sendUrgentData(int data)
Отправляет через сокет один байт срочных данных.
protected <T> void setOption(SocketOption<T> name, T value)
Вызывается для установки параметра сокета.
protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Этот метод предназначался для протоколов, которые теперь устарели.
protected void shutdownInput()
Переводит входной поток этого сокета в состояние «конец потока».
protected void shutdownOutput()
Отключает выходной поток этого сокета.
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и сокетом этой реализации (Socket или ServerSocket)
protected boolean supportsUrgentData()
Возвращает сведения о том, поддерживает ли эта SocketImpl отправку срочных данных.
String toString()
Возвращает адрес и порт этого сокета в виде String.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе SocketOptions

getOption, setOption
Модификатор и тип Метод Описание
Object getOption(int optID)
Получает значение параметра.
void setOption(int optID, Object value)
Включает или отключает параметр, заданный значением optID.

Подробное описание полей

fd

protected FileDescriptor fd
Объект дескриптора файла для этого сокета.

address

protected InetAddress address
IP-адрес удалённого конца этого сокета.

port

protected int port
Номер порта на удалённом узле, к которому подключён этот сокет.

localport

protected int localport
Номер локального порта, к которому подключён этот сокет.

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

SocketImpl

public SocketImpl()
Инициализирует новый экземпляр этого класса

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

create

protected abstract void create(boolean stream) throws IOException
Создаёт потоковый сокет.
Примечание API:
Параметр stream в ранних выпусках JDK позволял создать Socket, использующий дейтаграммный сокет. API Socket больше не предоставляет такой возможности, поэтому метод create всегда будет вызываться со значением stream, равным true.
Параметры:
stream — должен иметь значение true.
Исключения:
IOException — если при создании сокета произошла ошибка ввода-вывода.

connect

protected abstract void connect(String host, int port) throws IOException
Подключает этот сокет к указанному порту на узле с заданным именем.
Параметры:
host — имя удалённого узла.
port — номер порта.
Исключения:
IOException — если при подключении к удалённому узлу произошла ошибка ввода-вывода.

connect

protected abstract void connect(InetAddress address, int port) throws IOException
Подключает этот сокет к указанному номеру порта на заданном узле.
Параметры:
address — IP-адрес удалённого узла.
port — номер порта.
Исключения:
IOException — если при попытке подключения произошла ошибка ввода-вывода.

connect

protected abstract void connect(SocketAddress address, int timeout) throws IOException
Подключает этот сокет к указанному номеру порта на заданном узле. Нулевой тайм-аут трактуется как бесконечный. В этом случае операция подключения будет блокироваться до установления соединения или возникновения ошибки.
Параметры:
address — адрес сокета удалённого узла.
timeout — значение тайм-аута в миллисекундах или ноль, если тайм-аута нет.
Исключения:
IOException — если при попытке подключения произошла ошибка ввода-вывода.
С момента версии:
1.4

bind

protected abstract void bind(InetAddress host, int port) throws IOException
Привязывает этот сокет к указанному локальному IP-адресу и номеру порта.
Параметры:
host — IP-адрес, принадлежащий локальному интерфейсу.
port — номер порта.
Исключения:
IOException — если при привязке этого сокета произошла ошибка ввода-вывода.

listen

protected abstract void listen(int backlog) throws IOException
Устанавливает максимальную длину очереди входящих запросов на соединение равной значению аргумента count. Если запрос на соединение поступает при заполненной очереди, соединение отклоняется.
Параметры:
backlog — максимальная длина очереди.
Исключения:
IOException — если при создании очереди произошла ошибка ввода-вывода.

accept

protected abstract void accept(SocketImpl s) throws IOException
Принимает соединение.
Параметры:
s — принятое соединение.
Исключения:
IOException — если при принятии соединения произошла ошибка ввода-вывода.

getInputStream

protected abstract InputStream getInputStream() throws IOException
Возвращает входной поток для этого сокета.
Возвращает:
поток для чтения из этого сокета.
Исключения:
IOException — если при создании входного потока произошла ошибка ввода-вывода.

getOutputStream

protected abstract OutputStream getOutputStream() throws IOException
Возвращает выходной поток для этого сокета.
Возвращает:
выходной поток для записи в этот сокет.
Исключения:
IOException — если при создании выходного потока произошла ошибка ввода-вывода.

available

protected abstract int available() throws IOException
Возвращает количество байтов, которые можно прочитать из этого сокета без блокировки.
Возвращает:
количество байтов, которые можно прочитать из этого сокета без блокировки.
Исключения:
IOException — если при определении количества доступных байтов произошла ошибка ввода-вывода.

close

protected abstract void close() throws IOException
Закрывает этот сокет.
Исключения:
IOException — если при закрытии этого сокета произошла ошибка ввода-вывода.

shutdownInput

protected void shutdownInput() throws IOException
Переводит входной поток этого сокета в состояние «конец потока». Любые данные, отправленные этому сокету, подтверждаются, а затем незаметно отбрасываются. Если после вызова этого метода для сокета прочитать данные из входного потока сокета, метод available этого потока вернёт 0, а его методы read вернут -1 (конец потока).
Исключения:
IOException — если при отключении входного потока этого сокета произошла ошибка ввода-вывода.
С момента версии:
1.3
См. также:
  • Socket.shutdownOutput()
  • Socket.close()
  • Socket.setSoLinger(boolean, int)

shutdownOutput

protected void shutdownOutput() throws IOException
Отключает выходной поток этого сокета. Для сокета TCP все ранее записанные данные будут отправлены, после чего последует обычная последовательность завершения соединения TCP. Если после вызова shutdownOutput() для сокета записать данные в выходной поток сокета, поток выбросит IOException.
Исключения:
IOException — если при отключении выходного потока этого сокета произошла ошибка ввода-вывода.
С момента версии:
1.3
См. также:
  • Socket.shutdownInput()
  • Socket.close()
  • Socket.setSoLinger(boolean, int)

getFileDescriptor

protected FileDescriptor getFileDescriptor()
Возвращает значение поля fd этого сокета.
Возвращает:
значение поля fd этого сокета.
См. также:
  • fd

getInetAddress

protected InetAddress getInetAddress()
Возвращает значение поля address этого сокета.
Возвращает:
значение поля address этого сокета.
См. также:
  • address

getPort

protected int getPort()
Возвращает значение поля port этого сокета.
Возвращает:
значение поля port этого сокета.
См. также:
  • port

supportsUrgentData

protected boolean supportsUrgentData()
Возвращает сведения о том, поддерживает ли эта SocketImpl отправку срочных данных. По умолчанию возвращается значение false, если метод не переопределён в подклассе.
Возвращает:
true, если поддерживаются срочные данные
С момента версии:
1.4
См. также:
  • address

sendUrgentData

protected abstract void sendUrgentData(int data) throws IOException
Отправляет через сокет один байт срочных данных. Отправляемый байт — это младшие восемь битов параметра.
Параметры:
data — отправляемый байт данных
Исключения:
IOException — если при отправке данных произошла ошибка.
С момента версии:
1.4

getLocalPort

protected int getLocalPort()
Возвращает значение поля localport этого сокета.
Возвращает:
значение поля localport этого сокета.
См. также:
  • localport

toString

public String toString()
Возвращает адрес и порт этого сокета в виде String.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого сокета.

setPerformancePreferences

@Deprecated(since="26", forRemoval=true) protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Этот метод предназначался для протоколов, которые теперь устарели.
Задаёт параметры производительности для этого сокета.

По умолчанию сокеты используют протокол TCP/IP. Некоторые реализации могут предоставлять альтернативные протоколы с характеристиками производительности, отличными от TCP/IP. Этот метод позволяет приложению указать свои предпочтения относительно компромиссов, которые следует учитывать при выборе реализации из доступных протоколов.

Параметры производительности задаются тремя целыми числами, значения которых указывают относительную важность малого времени установления соединения, низкой задержки и высокой пропускной способности. Абсолютные значения чисел не имеют значения: при выборе протокола сравниваются только сами значения, причём большее значение указывает на более высокий приоритет. Отрицательные значения обозначают более низкий приоритет, чем положительные. Например, если приложение предпочитает малое время установления соединения низкой задержке и высокой пропускной способности, оно может вызвать этот метод со значениями (1, 0, 0). Если приложение предпочитает высокую пропускную способность низкой задержке, а низкую задержку — малому времени установления соединения, оно может вызвать этот метод со значениями (0, 1, 2). По умолчанию этот метод ничего не делает, если он не переопределён в подклассе.

Параметры:
connectionTime — int, выражающее относительную важность малого времени установления соединения
latency — int, выражающее относительную важность низкой задержки
bandwidth — int, выражающее относительную важность высокой пропускной способности
С момента версии:
1.5

setOption

protected <T> void setOption(SocketOption<T> name, T value) throws IOException
Вызывается для установки параметра сокета.
Требования к реализации:
Реализация этого метода по умолчанию сначала проверяет, что заданный параметр сокета name не равен null, а затем выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод, предоставив подходящую реализацию.
Параметры типа:
T — тип значения параметра сокета
Параметры:
name — параметр сокета
value — значение параметра сокета. Для некоторых параметров допустимо значение null.
Исключения:
UnsupportedOperationException — если SocketImpl не поддерживает этот параметр
IllegalArgumentException — если значение недопустимо для этого параметра
IOException — если произошла ошибка ввода-вывода или сокет закрыт
NullPointerException — если name имеет значение null
С момента версии:
9

getOption

protected <T> T getOption(SocketOption<T> name) throws IOException
Вызывается для получения параметра сокета.
Требования к реализации:
Реализация этого метода по умолчанию сначала проверяет, что заданный параметр сокета name не равен null, а затем выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод, предоставив подходящую реализацию.
Параметры типа:
T — тип значения параметра сокета
Параметры:
name — параметр сокета
Возвращает:
значение указанного параметра
Исключения:
UnsupportedOperationException — если SocketImpl не поддерживает этот параметр
IOException — если произошла ошибка ввода-вывода или сокет закрыт
NullPointerException — если name имеет значение null
С момента версии:
9

supportedOptions

protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и сокетом этой реализации (Socket или ServerSocket).
Требования к реализации:
Реализация этого метода по умолчанию возвращает пустой набор. Подклассам следует переопределить этот метод, предоставив подходящую реализацию.
Возвращает:
набор SocketOptions
С момента версии:
9

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

© 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