Класс 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 | Номер порта на удалённом хосте, к которому подключен этот сокет. |
Поля, объявленные в интерфейсе 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() | Возвращает значение поля |
protected InetAddress | getInetAddress() | Возвращает значение поля |
protected abstract InputStream | getInputStream() | Возвращает поток ввода для этого сокета. |
protected int | getLocalPort() | Возвращает значение поля |
protected <T> T | getOption(SocketOption<T> name) | Вызывается для получения параметра сокета. |
protected abstract OutputStream | getOutputStream() | Возвращает поток вывода для этого сокета. |
protected int | getPort() | Возвращает значение поля |
protected abstract void | listen(int backlog) | Устанавливает максимальную длину очереди для входящих указаний на подключение (запрос на подключение) к аргументу |
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() | Возвращает адрес и порт этого сокета в виде |
Методы, объявленные в классе 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.
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