Spec-Zone.ru › OpenJDK 21

Класс ServerSocket

java.lang.Object
java.net.ServerSocket
Все реализованные интерфейсы:
Closeable, AutoCloseable
Прямые известные подклассы:
SSLServerSocket
public class ServerSocket extends Object implements Closeable
Этот класс реализует сокеты сервера. Сокет сервера ожидает запросов из сети. Он выполняет некоторое действие на основе этого запроса и, возможно, возвращает результат запрашивающему.

Фактическая работа сокета сервера выполняется экземпляром класса SocketImpl.

Класс ServerSocket определяет удобные методы для установки и получения нескольких параметров сокета. Этот класс также определяет методы setOption и getOption для установки и запроса параметров сокета. Сокет ServerSocket поддерживает следующие параметры:

Параметры сокета
Имя параметра Описание
SO_RCVBUF Размер буфера приема сокета
SO_REUSEADDR Повторное использование адреса
Также могут поддерживаться дополнительные (специфичные для реализации) параметры.
С момента:
1.0
См. также:
  • SocketImpl
  • ServerSocketChannel

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

ServerSocket()
ServerSocket(int port)
ServerSocket(int port, int backlog)
ServerSocket(int port, int backlog, InetAddress bindAddr)
ServerSocket(SocketImpl impl)
Модификатор Конструктор Описание
Создает неустановленный сокет сервера.
Создаёт сокет сервера, привязанный к указанному порту.
Создает сокет сервера и привязывает его к указанному локальному номеру порта со значением backlog.
Создаёт сервер с указанным портом, значением backlog и локальным IP-адресом для привязки.
protected
Создаёт сокет сервера с заданным пользователем SocketImpl.

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

Модификатор и тип Метод Описание
Socket accept()
Ожидает подключения к этому сокету и принимает его.
void bind(SocketAddress endpoint)
Привязывает ServerSocket к определённому адресу (IP-адресу и номеру порта).
void bind(SocketAddress endpoint, int backlog)
Привязывает ServerSocket к определённому адресу (IP-адресу и номеру порта).
void close()
Закрывает этот сокет.
ServerSocketChannel getChannel()
Возвращает уникальный объект ServerSocketChannel, связанный с этим сокетом, если таковой имеется.
InetAddress getInetAddress()
Возвращает локальный адрес этого сокета сервера.
int getLocalPort()
Возвращает номер порта, на котором слушает этот сокет.
SocketAddress getLocalSocketAddress()
Возвращает адрес конечной точки, к которой привязан этот сокет.
<T> T getOption(SocketOption<T> name)
Возвращает значение параметра сокета.
int getReceiveBufferSize()
Получает значение параметра SO_RCVBUF для этого ServerSocket, то есть предлагаемый размер буфера, который будет использоваться для Sockets, принятых от этого ServerSocket.
boolean getReuseAddress()
Проверяет, включён ли параметр SO_REUSEADDR.
int getSoTimeout()
Получить значение для SO_TIMEOUT. 0 возвращает, если параметр отключён (т.е. таймаут бесконечен).
protected final void implAccept(Socket s)
Подклассы ServerSocket используют этот метод для переопределения accept(), чтобы вернуть свой собственный подкласс сокета.
boolean isBound()
Возвращает состояние привязки ServerSocket.
boolean isClosed()
Возвращает состояние закрытия ServerSocket.
<T> ServerSocket setOption(SocketOption<T> name, T value)
Устанавливает значение параметра сокета.
void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
Устанавливает предпочтения производительности для этого ServerSocket.
void setReceiveBufferSize(int size)
Устанавливает значение по умолчанию для параметра SO_RCVBUF для сокетов, принятых от этого ServerSocket.
void setReuseAddress(boolean on)
Включает/отключает параметр сокета SO_REUSEADDR.
static void setSocketFactory(SocketImplFactory fac)
Устарело.
Используйте ServerSocketFactory и подкласс ServerSocket напрямую.
void setSoTimeout(int timeout)
Включает/выключает SO_TIMEOUT с указанным таймаутом в миллисекундах.
Set<SocketOption<?>> supportedOptions()
Возвращает набор параметров сокета, поддерживаемых этим сокетом сервера.
String toString()
Возвращает адрес реализации и порт реализации этого сокета в виде String.

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

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

Подробное описание конструкторов

ServerSocket

protected ServerSocket(SocketImpl impl)
Создаёт сокет сервера с указанным SocketImpl.
Параметры:
impl - экземпляр SocketImpl, который нужно использовать для ServerSocket.
Исключения:
NullPointerException - если impl null.
SecurityException - если установлен менеджер безопасности и его метод checkPermission не разрешает NetPermission("setSocketImpl").
С тех пор:
12

ServerSocket

public ServerSocket() throws IOException
Создаёт незакреплённый сокет сервера.
Исключения:
IOException - ошибка ввода-вывода при открытии сокета.

ServerSocket

public ServerSocket(int port) throws IOException
Создаёт сокет сервера, привязанный к указанному порту. Номер порта 0 означает, что номер порта будет автоматически назначен, обычно из диапазона временных портов. Этот номер порта можно затем получить, вызвав getLocalPort.

Максимальная длина очереди для входящих соединений (запрос на подключение) установлена в 50. Если входящее соединение поступает, когда очередь заполнена, соединение отклоняется.

Если приложение указало фабрику реализации сокета сервера, метод createSocketImpl этой фабрики вызывается для создания фактической реализации сокета. В противном случае создаётся реализация сокета по умолчанию.

Если существует менеджер безопасности, его метод checkListen вызывается с аргументом port для обеспечения разрешения операции. Это может привести к исключению SecurityException.

Параметры:
port - номер порта или 0 для использования автоматически назначенного номера порта.
Исключения:
IOException - если возникает ошибка ввода-вывода при открытии сокета.
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IllegalArgumentException - если параметр порта находится за пределами указанного диапазона допустимых значений порта, который находится между 0 и 65535 включительно.
См. также:
  • SocketImpl
  • SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(int port, int backlog) throws IOException
Создаёт сокет сервера и привязывает его к указанному номеру локального порта с заданной очередью ожидающих подключений. Номер порта 0 означает, что номер порта будет автоматически назначен, обычно из диапазона временных портов. Этот номер порта можно затем получить, вызвав getLocalPort.

Максимальная длина очереди для входящих соединений (запрос на подключение) установлена в параметре backlog. Если входящее соединение поступает, когда очередь заполнена, соединение отклоняется.

Если приложение указало фабрику реализации сокета сервера, метод createSocketImpl этой фабрики вызывается для создания фактической реализации сокета. В противном случае создаётся реализация сокета по умолчанию.

Если существует менеджер безопасности, его метод checkListen вызывается с аргументом port для обеспечения разрешения операции. Это может привести к исключению SecurityException. Параметр backlog - это запрашиваемая максимальная длина очереди ожидающих подключений к сокету. Его точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще игнорировать параметр. Предоставленное значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться реализационный по умолчанию.

Параметры:
port - номер порта или 0 для использования автоматически назначенного номера порта.
backlog - запрашиваемая максимальная длина очереди входящих соединений.
Исключения:
IOException - если возникает ошибка ввода-вывода при открытии сокета.
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IllegalArgumentException - если параметр порта находится за пределами указанного диапазона допустимых значений порта, который находится между 0 и 65535 включительно.
См. также:
  • SocketImpl
  • SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException
Создаёт сервер с указанным портом, очередью ожидающих подключений и локальным IP-адресом для привязки. Аргумент bindAddr можно использовать на хосте с несколькими адресами для ServerSocket, который будет принимать запросы на подключение только к одному из его адресов. Если bindAddr равен null, сокет будет принимать соединения по всем локальным адресам. Порт должен быть в диапазоне от 0 до 65535 включительно. Номер порта 0 означает, что номер порта будет автоматически назначен, обычно из диапазона временных портов. Этот номер порта можно затем получить, вызвав getLocalPort.

Если существует менеджер безопасности, этот метод вызывает его метод checkListen с аргументом port для обеспечения разрешения операции. Это может привести к исключению SecurityException. Параметр backlog - это запрашиваемая максимальная длина очереди ожидающих подключений к сокету. Его точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще игнорировать параметр. Предоставленное значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться реализационный по умолчанию.

Параметры:
port - номер порта или 0 для использования автоматически назначенного номера порта.
backlog - запрашиваемая максимальная длина очереди входящих соединений.
bindAddr - локальный адрес InetAddress, к которому будет привязан сервер
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IOException - если возникает ошибка ввода-вывода при открытии сокета.
IllegalArgumentException - если параметр порта находится за пределами указанного диапазона допустимых значений порта, который находится между 0 и 65535 включительно.
С тех пор:
1.1
См. также:
  • SocketOptions
  • SocketImpl
  • SecurityManager.checkListen(int)

Подробное описание методов

bind

public void bind(SocketAddress endpoint) throws IOException
Привязывает ServerSocket к определённому адресу (IP-адрес и номер порта).

Если адрес null, система выберет временный порт и допустимый локальный адрес для привязки сокета.

Параметры:
endpoint - IP-адрес и номер порта для привязки.
Исключения:
IOException - если операция привязки не удалась или сокет уже привязан.
SecurityException - если менеджер безопасности существует и его метод SecurityManager не разрешает операцию.
IllegalArgumentException - если класс SocketAddress не поддерживается данным сокетом
С тех пор:
1.4

bind

public void bind(SocketAddress endpoint, int backlog) throws IOException
Привязывает ServerSocket к определённому адресу (IP-адрес и номер порта).

Если адрес null, система выберет временный порт и допустимый локальный адрес для привязки сокета.

Параметр backlog - это запрашиваемая максимальная длина очереди ожидающих подключений к сокету. Его точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще игнорировать параметр. Предоставленное значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться реализационный по умолчанию.

Параметры:
endpoint - IP-адрес и номер порта для привязки.
backlog - запрашиваемая максимальная длина очереди входящих соединений.
Исключения:
IOException - если операция привязки не удалась или сокет уже привязан.
SecurityException - если менеджер безопасности существует и его метод SecurityManager не разрешает операцию.
IllegalArgumentException - если класс SocketAddress не поддерживается данным сокетом
С тех пор:
1.4

getInetAddress

public InetAddress getInetAddress()
Возвращает локальный адрес этого сокета сервера.

Если сокет был привязан до вызова closed, этот метод продолжит возвращать локальный адрес после закрытия сокета.

Если установлен менеджер безопасности, его метод checkConnect вызывается с локальным адресом и -1 в качестве аргументов, чтобы проверить разрешение операции. Если операция не разрешена, возвращается адрес loopback.

Возвращает:
адрес, к которому привязан этот сокет, или адрес loopback, если запрещено менеджером безопасности, или null если сокет не привязан.
См. также:
  • SecurityManager.checkConnect(java.lang.String, int)
END_OF_DOCUMENT_MARKER

getLocalPort

public int getLocalPort()
Возвращает номер порта, на котором этот сокет прослушивает.

Если сокет был связан до вызова closed, то этот метод продолжит возвращать номер порта после закрытия сокета.

Возвращает:
номер порта, на котором этот сокет прослушивает, или -1, если сокет ещё не связан.

getLocalSocketAddress

public SocketAddress getLocalSocketAddress()
Возвращает адрес конечной точки, к которой привязан этот сокет.

Если сокет был связан до вызова closed, то этот метод продолжит возвращать адрес конечной точки после закрытия сокета.

Если установлен менеджер безопасности, его метод checkConnect вызывается с локальным адресом и -1 в качестве аргументов, чтобы проверить, разрешена ли операция. Если операция не разрешена, возвращается SocketAddress , представляющий loopback адрес и локальный порт, к которому привязан сокет.

Возвращает:
SocketAddress , представляющий локальную конечную точку этого сокета, или SocketAddress , представляющий адрес обратной петли, если доступ запрещён менеджером безопасности, или null , если сокет ещё не связан.
С:
1.4
См. также:
  • getInetAddress()
  • getLocalPort()
  • bind(SocketAddress)
  • SecurityManager.checkConnect(java.lang.String, int)

accept

public Socket accept() throws IOException
Ожидает подключение к этому сокету и принимает его. Метод блокируется, пока не будет установлено подключение.

Этот метод может быть прерван в следующих ситуациях:

  1. Сокет связан с ассоциированным ServerSocketChannel. В этом случае прерывание потока, принимающего подключение, закроет базовый канал и вызовет исключение ClosedByInterruptException со статусом прерывания.
  2. Сокет использует системную реализацию сокета и виртуальный поток принимает подключение. В этом случае прерывание виртуального потока вызовет его пробуждение и закрытие сокета. Затем этот метод выбросит SocketException со статусом прерывания.

Создается новый сокет s, и если менеджер безопасности существует, вызывается метод checkAccept менеджера безопасности с s.getInetAddress().getHostAddress() и s.getPort() в качестве аргументов для проверки разрешения операции. Это может привести к исключению SecurityException.

Примечание реализации:
Экземпляр этого класса, использующий системную реализацию SocketImpl, принимает сокеты с реализацией SocketImpl того же типа, независимо от фабрики реализации клиентского сокета, если она была установлена.
Возвращает:
новый сокет
Исключение:
IOException - если при ожидании подключения происходит ошибка ввода-вывода.
SecurityException - если существует менеджер безопасности и его метод checkAccept не разрешает операцию.
SocketTimeoutException - если ранее был установлен таймаут с setSoTimeout и таймаут истек.
IllegalBlockingModeException - если у этого сокета есть связанный канал, канал находится в режиме без блокировки и нет подключения, готового к приему.
См. также:
  • SecurityManager.checkAccept(java.lang.String, int)

implAccept

protected final void implAccept(Socket s) throws IOException
Подклассы ServerSocket используют этот метод для переопределения accept(), чтобы вернуть свой собственный подкласс сокета. Таким образом, FooServerSocket обычно передаёт в этот метод новый, не связанный FooSocket. После возврата из implAccept FooSocket будет подключен к клиенту.

Поведение этого метода не определено, если он вызывается с сокетом, который не был создан и не был связан. Любые параметры сокета, установленные в заданном сокете до вызова этого метода, могут быть сохранены, а могут и не быть сохранены при приёме соединения. Возможно, не удастся принять соединение, когда у этого сокета SocketImpl одного типа, а у заданного сокета SocketImpl совершенно другого типа.

Примечание реализации:
Экземпляр этого класса, использующий системную реализацию SocketImpl, может принять соединение с сокетом Socket, использующим реализацию SocketImpl того же типа: IOException выбрасывается, если Socket использует пользовательскую реализацию SocketImpl. Экземпляр этого класса, использующий пользовательскую реализацию SocketImpl, не может принять соединение с сокетом Socket, использующим системную реализацию SocketImpl.
Параметры:
s - сокет
Исключение:
IllegalBlockingModeException - если у этого сокета есть связанный канал, и канал находится в режиме без блокировки.
IOException - если при ожидании подключения происходит ошибка ввода-вывода, или если этот сокет не может принять соединение с данным сокетом.
С:
1.1

close

public void close() throws IOException
Закрывает этот сокет. Любой поток, который в данный момент заблокирован в accept(), выбросит исключение SocketException.

Если у этого сокета есть связанный канал, то канал также закрывается.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Исключение:
IOException - если при закрытии сокета происходит ошибка ввода-вывода.

getChannel

public ServerSocketChannel getChannel()
Возвращает уникальный объект ServerSocketChannel, связанный с этим сокетом, если таковой есть.

Серверный сокет будет иметь канал только в том случае, если сам канал был создан методом ServerSocketChannel.open.

Возвращает:
серверный канал сокета, связанный с этим сокетом, или null , если этот сокет не был создан для канала.
С:
1.4

isBound

public boolean isBound()
Возвращает состояние привязки ServerSocket.

Если сокет был связан до закрытия, этот метод продолжит возвращать true после закрытия сокета.

Возвращает:
true, если ServerSocket успешно привязан к адресу
С:
1.4

isClosed

public boolean isClosed()
Возвращает состояние закрытия ServerSocket.
Возвращает:
true, если сокет был закрыт
С:
1.4

setSoTimeout

public void setSoTimeout(int timeout) throws SocketException
Включает/выключает SO_TIMEOUT с заданным таймаутом в миллисекундах. При положительном значении таймаута вызов accept() для этого ServerSocket будет блокироваться только на это время. Если таймаут истечёт, генерируется исключение java.net.SocketTimeoutException, хотя ServerSocket всё ещё валиден. Таймаут 0 интерпретируется как бесконечный таймаут. Параметр должен быть включён перед входом в блокирующую операцию, чтобы иметь эффект.
Параметры:
timeout - заданный таймаут в миллисекундах
Исключение:
SocketException - если возникает ошибка в базовом протоколе, например, ошибка TCP.
IllegalArgumentException - если timeout отрицательно.
С:
1.1
См. также:
  • getSoTimeout()

getSoTimeout

public int getSoTimeout() throws IOException
Получает значение SO_TIMEOUT. 0 означает, что параметр отключен (т.е., таймаут бесконечен).
Возвращает:
значение SO_TIMEOUT
Исключение:
IOException - если возникает ошибка ввода-вывода.
С:
1.1
См. также:
  • setSoTimeout(int)

setReuseAddress

public void setReuseAddress(boolean on) throws SocketException
Включает/выключает опцию сокета SO_REUSEADDR.

После закрытия TCP-соединения соединение может оставаться в состоянии таймаута в течение некоторого времени после закрытия соединения (обычно это состояние TIME_WAIT или состояние ожидания 2MSL). Для приложений, использующих известный адрес сокета или порт, может быть невозможно привязать сокет к нужному SocketAddress если существует соединение в состоянии таймаута, связанное с адресом сокета или портом.

Включение SO_REUSEADDR перед привязкой сокета с помощью bind(SocketAddress) позволяет привязать сокет даже если предыдущее соединение находится в состоянии таймаута.

При создании ServerSocket начальное значение SO_REUSEADDR не определено. Приложения могут использовать getReuseAddress() для определения начального значения SO_REUSEADDR.

Поведение при включении или выключении SO_REUSEADDR после привязки сокета (см. isBound()) не определено.

Parameters:
on - нужно ли включить или выключить опцию сокета
Throws:
SocketException - если произошла ошибка при включении или выключении опции сокета SO_REUSEADDR или сокет закрыт.
Since:
1.4
See Also:
  • getReuseAddress()
  • bind(SocketAddress)
  • isBound()
  • isClosed()

getReuseAddress

public boolean getReuseAddress() throws SocketException
Проверяет, включена ли опция SO_REUSEADDR.
Returns:
значение boolean, указывающее, включена ли SO_REUSEADDR.
Throws:
SocketException - если произошла ошибка в базовом протоколе, например, ошибка TCP.
Since:
1.4
See Also:
  • setReuseAddress(boolean)

toString

public String toString()
Возвращает адрес и порт реализации сокета в виде String.

Если установлен менеджер безопасности и этот сокет привязан, вызывается метод checkConnect менеджера с локальным адресом и -1 в качестве аргументов, чтобы проверить, разрешена ли операция. Если операция не разрешена, в качестве адреса реализации возвращается строка, представляющая loopback-адрес.

Overrides:
toString в классе Object
Returns:
строковое представление этого сокета.

setSocketFactory

@Deprecated(since="17") public static void setSocketFactory(SocketImplFactory fac) throws IOException
Устаревшее.
Используйте ServerSocketFactory и подкласс ServerSocket напрямую.
Этот метод в ранних версиях JDK предоставлял способ замены системной реализации ServerSocket. Он в основном устарел с Java 1.4. Если требуется, можно создать ServerSocket для использования пользовательской реализации, расширив ServerSocket и используя защищённый конструктор, принимающий реализацию в качестве параметра.
Устанавливает фабрику реализации серверного сокета для приложения. Фабрику можно задать только один раз.

Когда приложение создаёт новый серверный сокет, вызывается метод createSocketImpl фабрики реализации сокетов для создания фактической реализации сокета.

Передача null в метод — это пустая операция, если фабрика ещё не была установлена.

Если установлен менеджер безопасности, этот метод сначала вызывает метод checkSetFactory менеджера безопасности, чтобы убедиться, что операция разрешена. Это может привести к SecurityException.

Parameters:
fac - необходимая фабрика.
Throws:
IOException - если при установке фабрики сокета произошла ошибка ввода-вывода.
SocketException - если фабрика уже определена.
SecurityException - если существует менеджер безопасности и его метод checkSetFactory не разрешает операцию.
See Also:
  • SocketImplFactory.createSocketImpl()
  • SecurityManager.checkSetFactory()

setReceiveBufferSize

public void setReceiveBufferSize(int size) throws SocketException
Устанавливает предлагаемое значение по умолчанию для опции SO_RCVBUF для сокетов, принятых от этого ServerSocket. Фактическое значение, установленное в принятом сокете, должно определяться вызовом Socket.getReceiveBufferSize() после возвращения сокета методом accept().

Значение SO_RCVBUF используется как для установки размера внутреннего буфера приема сокета, так и для установки размера TCP-окна приема, которое рекламируется удалённому узлу.

Можно изменить это значение впоследствии, вызвав Socket.setReceiveBufferSize(int). Однако, если приложение хочет разрешить окно приема больше 64КБ, как определено в RFC1323, то предложенное значение должно быть установлено в ServerSocket до привязки к локальному адресу. Это подразумевает, что ServerSocket должен быть создан с конструктором без аргументов, затем вызван setReceiveBufferSize(), а затем ServerSocket привязывается к адресу с помощью bind().

Отказ от этого не вызовет ошибки, и размер буфера может быть установлен в запрошенное значение, но размер TCP-окна приема в сокетах, принятых от этого ServerSocket, не будет больше 64КБ.

Parameters:
size - размер, на который нужно установить размер буфера приема. Это значение должно быть больше 0.
Throws:
SocketException - если произошла ошибка в базовом протоколе, например, ошибка TCP.
IllegalArgumentException - если значение равно 0 или отрицательно.
Since:
1.4
See Also:
  • getReceiveBufferSize()

getReceiveBufferSize

public int getReceiveBufferSize() throws SocketException
Возвращает значение опции SO_RCVBUF для этого ServerSocket, то есть предлагаемый размер буфера, который будет использоваться для сокетов, принятых от этого ServerSocket.

Обратите внимание, что фактическое значение, установленное в принятом сокете, определяется вызовом Socket.getReceiveBufferSize().

Returns:
значение опции SO_RCVBUF для этого Socket.
Throws:
SocketException - если произошла ошибка в базовом протоколе, например, ошибка TCP.
Since:
1.4
See Also:
  • setReceiveBufferSize(int)

setPerformancePreferences

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

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

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

Вызов этого метода после привязки этого сокета не повлияет на результат. Это означает, что для использования этой возможности сокет должен быть создан с конструктором без аргументов.

Parameters:
connectionTime - Целое число, отражающее относительную важность короткого времени подключения
latency - Целое число, отражающее относительную важность низкой задержки
bandwidth - Целое число, отражающее относительную важность высокой пропускной способности
Since:
1.5

setOption

public <T> ServerSocket setOption(SocketOption<T> name, T value) throws IOException
Устанавливает значение параметра сокета.
Type Parameters:
T - Тип значения параметра сокета
Parameters:
name - Параметр сокета
value - Значение параметра сокета. Значение null может быть допустимым для некоторых параметров.
Returns:
this ServerSocket
Throws:
UnsupportedOperationException - если серверный сокет не поддерживает параметр.
IllegalArgumentException - если значение не является допустимым для параметра.
IOException - если произошла ошибка ввода-вывода или сокет закрыт.
NullPointerException - если имя является null
SecurityException - если установлен менеджер безопасности, и параметр сокета требует разрешения безопасности, и вызывающий его не обладает требуемым разрешением. StandardSocketOptions не требуют разрешения безопасности.
Since:
9

getOption

public <T> T getOption(SocketOption<T> name) throws IOException
Возвращает значение параметра сокета.
Type Parameters:
T - Тип значения параметра сокета
Parameters:
name - Параметр сокета
Returns:
Значение параметра сокета.
Throws:
UnsupportedOperationException - если серверный сокет не поддерживает параметр.
IOException - если произошла ошибка ввода-вывода или сокет закрыт.
NullPointerException - если имя является null
SecurityException - если установлен менеджер безопасности, и параметр сокета требует разрешения безопасности, и вызывающий его не обладает требуемым разрешением. StandardSocketOptions не требуют разрешения безопасности.
Since:
9

supportedOptions

public Set<SocketOption<?>> supportedOptions()
Возвращает набор параметров сокета, поддерживаемых этим серверным сокетом. Этот метод будет продолжать возвращать набор параметров даже после закрытия сокета.
Returns:
Набор параметров сокета, поддерживаемых этим сокетом. Этот набор может быть пустым, если SocketImpl сокета нельзя создать.
Since:
9

© 1993, 2023, 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/21/docs/api/java.base/java/net/ServerSocket.html

Spec-Zone.ru

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