Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ServerSocketChannel extends AbstractSelectableChannel implements NetworkChannel
Канал сокета сервера создается, вызывая open
метод этого класса. Не возможно создать канал для произвольного, существуя ранее ServerSocket
. Недавно создаваемый канал сокета сервера открыт, но еще связан. Попытка вызвать accept
метод несвязанного канала сокета сервера вызовет a NotYetBoundException
быть брошенным. Канал сокета сервера может быть связан, вызывая один из bind
методы определяются этим классом.
Опции сокета конфигурируются, используя setOption
метод. Каналы сокета сервера поддерживают следующие опции:
Дополнительный (определенная реализация) опции могут также поддерживаться.
Имя опции Описание SO_RCVBUF
Размер сокета получает буфер SO_REUSEADDR
Адрес повторного использования
Каналы сокета сервера безопасны для использования многократными параллельными потоками.
Модификатор | Конструктор и Описание |
---|---|
protected |
ServerSocketChannel(SelectorProvider provider)
Инициализирует новый экземпляр этого класса.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract SocketChannel |
accept()
Принимает соединение, сделанное к сокету этого канала.
|
ServerSocketChannel |
bind(SocketAddress local)
Связывает сокет канала с локальным адресом и конфигурирует сокет, чтобы прислушаться к соединениям.
|
abstract ServerSocketChannel |
bind(SocketAddress local, int backlog)
Связывает сокет канала с локальным адресом и конфигурирует сокет, чтобы прислушаться к соединениям.
|
static ServerSocketChannel |
open()
Открывает канал сокета сервера.
|
abstract <T> ServerSocketChannel |
setOption(SocketOption<T> name, T value)
Устанавливает значение опции сокета.
|
abstract ServerSocket |
socket()
Получает сокет сервера, связанный с этим каналом.
|
int |
validOps()
Возвращает набор работы, идентифицирующий поддерживаемые операции этого канала.
|
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
регистр
begin, close, end, isOpen
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getLocalAddress, getOption, supportedOptions
protected ServerSocketChannel(SelectorProvider provider)
public static ServerSocketChannel open() throws IOException
Новый канал создается, вызывая openServerSocketChannel
метод значения по умолчанию в масштабе всей системы SelectorProvider
объект.
Сокет нового канала является первоначально несвязанным; это должно быть связано с определенным адресом через один из его сокета bind
методы перед соединениями могут быть приняты.
IOException
- Если ошибка ввода-вывода происходитpublic final int validOps()
Каналы сокета сервера только поддерживают принятие новых соединений, таким образом, этот метод возвращается SelectionKey.OP_ACCEPT
.
validOps
в классе SelectableChannel
public final ServerSocketChannel bind(SocketAddress local) throws IOException
Вызов этого метода эквивалентен следующему:
bind(local, 0);
bind
в интерфейсе NetworkChannel
local
- Локальный адрес, чтобы связать сокет, или null
связывать с автоматически присвоенным адресом сокетаAlreadyBoundException
- Если сокет уже связываетсяUnsupportedAddressTypeException
- Если тип данного адреса не поддерживаетсяClosedChannelException
- Если канал закрываетсяIOException
- Если некоторая другая ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности был установлен и checkListen
метод отрицает работуNetworkChannel.getLocalAddress()
public abstract ServerSocketChannel bind(SocketAddress local, int backlog) throws IOException
Этот метод используется, чтобы установить ассоциацию между сокетом и локальным адресом. Как только ассоциация устанавливается тогда, сокет остается связанным, пока канал не закрывается.
backlog
параметр является максимальным количеством соединений на ожидании на сокете. Его точная семантика является определенной реализацией. В частности реализация может наложить максимальную длину или может хотеть игнорировать параметр altogther. Если backlog
у параметра есть значение 0
, или отрицательная величина, затем реализация определенное значение по умолчанию используется.
local
- Адрес, чтобы связать сокет, или null
связывать с автоматически присвоенным адресом сокетаbacklog
- Максимальное количество соединений на ожиданииAlreadyBoundException
- Если сокет уже связываетсяUnsupportedAddressTypeException
- Если тип данного адреса не поддерживаетсяClosedChannelException
- Если этот канал закрываетсяIOException
- Если некоторая другая ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности был установлен и checkListen
метод отрицает работуpublic abstract <T> ServerSocketChannel setOption(SocketOption<T> name, T value) throws IOException
NetworkChannel
setOption
в интерфейсе NetworkChannel
name
- Опция сокетаvalue
- Значение опции сокета. Значение null
может быть допустимое значение для некоторых опций сокета.UnsupportedOperationException
- Если опция сокета не поддерживается этим каналомIllegalArgumentException
- Если значение не является допустимым значением для этой опции сокетаClosedChannelException
- Если этот канал закрываетсяIOException
- Если ошибка ввода-вывода происходитStandardSocketOptions
public abstract ServerSocket socket()
Возвращенный объект не будет объявлять открытых методов, которые не объявляются в ServerSocket
класс.
public abstract SocketChannel accept() throws IOException
Если этот канал будет в неблокировании режима тогда, то этот метод сразу возвратит null, если не будет никаких соединений на ожидании. Иначе это блокирует неопределенно, пока новое соединение не доступно, или ошибка ввода-вывода происходит.
Канал сокета, возвращенный этим методом, если таковые вообще имеются, будет в блокировании режима независимо от режима блокирования этого канала.
Этот метод выполняет точно те же самые проверки безопасности как accept
метод ServerSocket
класс. Таким образом, если менеджер безопасности был установлен тогда для каждого нового соединения, этот метод проверяет, что адрес и номер порта удаленной конечной точки соединения разрешаются менеджером безопасности checkAccept
метод.
ClosedChannelException
- Если этот канал закрываетсяAsynchronousCloseException
- Если другой поток закрывает этот канал, в то время как принять работа происходитClosedByInterruptException
- Если другой поток прерывает текущий поток, в то время как принять работа происходит, таким образом закрывая канал и устанавливая состояние прерывания текущего потокаNotYetBoundException
- Если сокет этого канала еще не был связанSecurityException
- Если менеджер безопасности был установлен, и он не разрешает доступ к удаленной конечной точке нового соединенияIOException
- Если некоторая другая ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.