Spec-Zone.ru › OpenJDK 17

Класс SocketImpl

java.lang.Object
java.net.SocketImpl
Все реализуемые интерфейсы:
SocketOptions
public abstract class SocketImpl extends Object implements SocketOptions
Абстрактный класс SocketImpl является общим суперклассом для всех классов, которые фактически реализуют сокеты. Он используется для создания сокетов как для клиента, так и для сервера.
Замечание по реализации:
Сокеты клиента и сервера, созданные с использованием публичных конструкторов Socket и SocketServer, создают системный SocketImpl. В JDK исторически использовался тип реализации SocketImpl под названием "PlainSocketImpl", который с тех пор был заменён на новую реализацию. JDK продолжает поставляться со старой реализацией, чтобы разрешить работу кода, зависящего от неопределённого поведения, которое отличается между старой и новой реализациями. Старая реализация будет использоваться, если виртуальная машина Java запускается с системной переменной jdk.net.usePlainSocketImpl, установленной для использования старой реализации. Она также может быть установлена в конфигурационном файле сети JDK, расположенном в ${java.home}/conf/net.properties. Значение свойства представляет собой строковое представление булевого значения. Если она задана без значения, то по умолчанию она равна true, следовательно, запуск с -Djdk.net.usePlainSocketImpl или -Djdk.net.usePlainSocketImpl=true настроит виртуальную машину Java на использование старой реализации. Свойство и старая реализация будут удалены в будущей версии.
С момента:
1.0

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

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

Поля, объявленные в интерфейсе java.net.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

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

Конструктор Описание
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)
Устанавливает предпочтения производительности для этого сокета.
protected void shutdownInput()
Размещает поток ввода для этого сокета в "конец потока".
protected void shutdownOutput()
Отключает поток вывода для этого сокета.
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этим impl и сокетом этого impl (Socket или ServerSocket).
protected boolean supportsUrgentData()
Возвращает, поддерживает ли этот SocketImpl отправку данных экстренной информации.
String toString()
Возвращает адрес и порт этого сокета в виде String.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

getOption, setOption

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

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
Создаёт либо сокет потока, либо сокет дейтаграммы.
Параметры:
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
Подключает этот сокет к указанному номеру порта на указанном хосте. Значение таймаута 0 интерпретируется как бесконечный таймаут. Подключение будет блокироваться до установления соединения или возникновения ошибки.
Параметры:
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

protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Устанавливает предпочтения производительности для этого сокета.

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

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

Параметры:
connectionTime - Целое число, выражающее относительную важность короткого времени соединения
latency - Целое число, выражающее относительную важность низкой задержки
bandwidth - Целое число, выражающее относительную важность высокой пропускной способности
С:
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 - если имя null
С:
9

getOption

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

supportedOptions

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

© 1993, 2021, 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/17/docs/api/java.base/java/net/SocketImpl.html

Spec-Zone.ru

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