Класс 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

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

Поля, объявленные в интерфейсе 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 - значение таймаута в миллисекундах, или 0 для отсутствия таймаута.
Исключение:
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

Вызывается для установки параметра сокета.

Параметры типов:
T - тип значения параметра сокета
Параметры:
name - параметр сокета
value - значение параметра сокета. Значение null может быть допустимым для некоторых параметров.
Исключение:
UnsupportedOperationException - если SocketImpl не поддерживает параметр
IOException - если произошла ошибка ввода-вывода или сокет закрыт.
С:
9

getOption

protected <T> T getOption(SocketOption<T> name)
                   throws IOException

Вызывается для получения параметра сокета.

Параметры типов:
T - тип значения параметра сокета
Параметры:
name - параметр сокета
Возвращает:
значение указанного параметра
Исключение:
UnsupportedOperationException - если SocketImpl не поддерживает параметр.
IOException - если произошла ошибка ввода-вывода или сокет закрыт.
С:
9

supportedOptions

protected Set<SocketOption<?>> supportedOptions()

Возвращает набор SocketOptions, поддерживаемых этим impl и сокетом этого impl (Socket или ServerSocket)

Возвращает:
набор SocketOptions
С:
9

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/SocketImpl.html

Spec-Zone .ru
спецификации, руководства, описания, API