Класс 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 |
Принимает соединение. |
protected abstract int |
available() |
Возвращает количество байтов, которые можно прочитать из этого сокета без блокировки. |
protected abstract void |
bind |
Привязывает этот сокет к указанному локальному IP-адресу и номеру порта. |
protected abstract void |
close() |
Закрывает этот сокет. |
protected abstract void |
connect |
Подключает этот сокет к указанному порту на узле с заданным именем. |
protected abstract void |
connect |
Подключает этот сокет к указанному номеру порта на заданном узле. |
protected abstract void |
connect |
Подключает этот сокет к указанному номеру порта на заданном узле. |
protected abstract void |
create |
Создаёт потоковый сокет. |
protected FileDescriptor |
getFileDescriptor() |
Возвращает значение поля fd этого сокета. |
protected InetAddress |
getInetAddress() |
Возвращает значение поля address этого сокета. |
protected abstract InputStream |
getInputStream() |
Возвращает входной поток для этого сокета. |
protected int |
getLocalPort() |
Возвращает значение поля localport этого сокета. |
protected <T> T |
getOption |
Вызывается для получения параметра сокета. |
protected abstract OutputStream |
getOutputStream() |
Возвращает выходной поток для этого сокета. |
protected int |
getPort() |
Возвращает значение поля port этого сокета. |
protected abstract void |
listen |
Устанавливает максимальную длину очереди для входящих запросов на соединение к значению аргумента count. |
protected abstract void |
sendUrgentData |
Отправляет через сокет один байт срочных данных. |
protected <T> void |
setOption |
Вызывается для установки параметра сокета. |
protected void |
setPerformancePreferences |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Этот метод предназначался для протоколов, которые теперь устарели. |
protected void |
shutdownInput() |
Переводит входной поток этого сокета в состояние «конец потока». |
protected void |
shutdownOutput() |
Отключает выходной поток этого сокета. |
protected Set |
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 |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
fd
protected FileDescriptor fd
address
protected InetAddress address
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
- Параметры:
-
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
- См. также:
shutdownOutput
protected void shutdownOutput() throws IOException
- Исключения:
-
IOException— если при отключении выходного потока этого сокета произошла ошибка ввода-вывода. - С момента версии:
- 1.3
- См. также:
getFileDescriptor
protected FileDescriptor getFileDescriptor()
fd этого сокета.- Возвращает:
- значение поля
fdэтого сокета. - См. также:
getInetAddress
protected InetAddress getInetAddress()
address этого сокета.- Возвращает:
- значение поля
addressэтого сокета. - См. также:
getPort
protected int getPort()
port этого сокета.- Возвращает:
- значение поля
portэтого сокета. - См. также:
supportsUrgentData
protected boolean supportsUrgentData()
- Возвращает:
- true, если поддерживаются срочные данные
- С момента версии:
- 1.4
- См. также:
sendUrgentData
protected abstract void sendUrgentData(int data) throws IOException
- Параметры:
-
data— отправляемый байт данных - Исключения:
-
IOException— если при отправке данных произошла ошибка. - С момента версии:
- 1.4
getLocalPort
protected int getLocalPort()
localport этого сокета.- Возвращает:
- значение поля
localportэтого сокета. - См. также:
toString
setPerformancePreferences
@Deprecated(since="26", forRemoval=true) protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
По умолчанию сокеты используют протокол 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
- С момента версии:
- 9
© 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.