|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ServerSocketChannel extends AbstractSelectableChannel implements NetworkChannel
Канал сокета сервера создается, вызывая open метод этого class. Не возможно создать канал для произвольного, существуя ранее ServerSocket. Недавно создаваемый канал сокета сервера открыт, но еще связан. Попытка вызвать accept метод несвязанного канала сокета сервера вызовет a NotYetBoundException быть брошенным. Канал сокета сервера может быть связан, вызывая один из bind методы определяются этим class.
Опции сокета конфигурируются, используя setOption метод. Каналы сокета сервера поддерживают следующие опции:
Дополнительный (определенная реализация) опции могут также поддерживаться.
Имя опции Описание SO_RCVBUFРазмер сокета получает буфер SO_REUSEADDRАдрес повторного использования
Каналы сокета сервера безопасны для использования многократными параллельными потоками.
| Модификатор | Конструктор и Описание |
|---|---|
protected |
ServerSocketChannel(SelectorProvider provider)
Инициализирует новый экземпляр этого class.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
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, isOpenclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetLocalAddress, getOption, supportedOptionsprotected ServerSocketChannel(SelectorProvider provider)
public static ServerSocketChannel open() throws IOException
Новый канал создается, вызывая openServerSocketChannel метод значения по умолчанию в масштабе всей системы SelectorProvider объект.
Сокет нового канала является первоначально несвязанным; это должно быть связано с определенным адресом через один из его сокета bind методы перед соединениями могут быть приняты.
IOException - Если ошибка ввода-вывода происходитpublic final int validOps()
Каналы сокета сервера только поддерживают принятие новых соединений, таким образом, этот метод возвращается SelectionKey.OP_ACCEPT.
validOps в class SelectableChannelpublic final ServerSocketChannel bind(SocketAddress local) throws IOException
Вызов этого метода эквивалентен следующему:
bind(local, 0);
bind в интерфейсе NetworkChannellocal - Локальный адрес, чтобы связать сокет, или 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
NetworkChannelsetOption в интерфейсе NetworkChannelname - Опция сокетаvalue - Значение опции сокета. Значение null может быть допустимое значение для некоторых опций сокета.UnsupportedOperationException - Если опция сокета не поддерживается этим каналомIllegalArgumentException - Если значение не является допустимым значением для этой опции сокетаClosedChannelException - Если этот канал закрываетсяIOException - Если ошибка ввода-вывода происходитStandardSocketOptionspublic abstract ServerSocket socket()
Возвращенный объект не будет объявлять открытых методов, которые не объявляются в ServerSocket class.
public abstract SocketChannel accept() throws IOException
Если этот канал будет в неблокировании режима тогда, то этот метод сразу возвратит null, если не будет никаких соединений на ожидании. Иначе это блокирует неопределенно, пока новое соединение не доступно, или ошибка ввода-вывода происходит.
Канал сокета, возвращенный этим методом, если таковые вообще имеются, будет в блокировании режима независимо от режима блокирования этого канала.
Этот метод выполняет точно те же самые проверки безопасности как accept метод ServerSocket class. Таким образом, если менеджер безопасности был установлен тогда для каждого нового соединения, этот метод проверяет, что адрес и номер порта удаленной конечной точки соединения разрешаются менеджером безопасности checkAccept метод.
ClosedChannelException - Если этот канал закрываетсяAsynchronousCloseException - Если другой поток закрывает этот канал, в то время как принять работа происходитClosedByInterruptException - Если другой поток прерывает текущий поток, в то время как принять работа происходит, таким образом закрывая канал и устанавливая состояние прерывания текущего потокаNotYetBoundException - Если сокет этого канала еще не был связанSecurityException - Если менеджер безопасности был установлен, и он не разрешает доступ к удаленной конечной точке нового соединенияIOException - Если некоторая другая ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92