Класс SocketImpl
- java.lang.Object
-
- java.net.SocketImpl
- Все реализованные интерфейсы:
- SocketOptions
public abstract class SocketImpl extends Object implements SocketOptions
Абстрактный класс SocketImpl — общий суперкласс для всех классов, которые фактически реализуют сокеты. Он используется для создания сокетов как для клиентов, так и для серверов.
«Простой» сокет реализует эти методы точно так, как описано, без попыток прохождения через брандмауэр или прокси.
- С тех пор:
- JDK1.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_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(InetAddress address,
int port) Подключает этот сокет к указанному номеру порта на указанном хосте. |
protected abstract void |
connect(SocketAddress address,
int timeout) Подключает этот сокет к указанному номеру порта на указанном хосте. |
protected abstract void |
connect(String host,
int port) Подключает этот сокет к указанному порту на указанном хосте. |
protected abstract void |
create(boolean stream) Создаёт сокет потокового или датаграммного типа. |
protected FileDescriptor |
getFileDescriptor() Возвращает значение поля |
protected InetAddress |
getInetAddress() Возвращает значение поля |
protected abstract InputStream |
getInputStream() Возвращает поток ввода для этого сокета. |
protected int |
getLocalPort() Возвращает значение поля |
protected abstract OutputStream |
getOutputStream() Возвращает поток вывода для этого сокета. |
protected int |
getPort() Возвращает значение поля |
protected abstract void |
listen(int backlog) Устанавливает максимальную длину очереди для входящих индикаций подключения (запрос на подключение) к аргументу |
protected abstract void |
sendUrgentData(int data) Отправляет один байт срочных данных по сокету. |
protected void |
setPerformancePreferences(int connectionTime,
int latency,
int bandwidth) Устанавливает предпочтения производительности для этого сокета. |
protected void |
shutdownInput() Устанавливает поток ввода для этого сокета в состояние "конец потока". |
protected void |
shutdownOutput() Отключает поток вывода для этого сокета. |
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 Подключает этот сокет к указанному номеру порта на указанном хосте. Значение таймаута в нуле равно бесконечному таймауту. Подключение будет заблокировано до завершения или появления ошибки.
- Параметры:
-
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.
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
© 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.