Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class SelectorProvider extends Object
Селекторный провайдер является конкретным подклассом этого класса, который имеет конструктора нулевого параметра и реализует абстрактные методы, определенные ниже. Данный вызов виртуальной машины Java поддерживает единственный экземпляр провайдера по умолчанию в масштабе всей системы, который возвращается provider
метод. Первый вызов того метода определит местоположение провайдера по умолчанию как определено ниже.
Провайдер по умолчанию в масштабе всей системы используется статическими методами open DatagramChannel
, Pipe
, Selector
, ServerSocketChannel
, и SocketChannel
классы. Это также используется System.inheritedChannel()
метод. Программа может использовать провайдера кроме провайдера по умолчанию, инстанцируя того провайдера и затем непосредственно вызывая методы open, определенные в этом классе.
Все методы в этом классе безопасны для использования многократными параллельными потоками.
Модификатор | Конструктор и Описание |
---|---|
protected |
SelectorProvider()
Инициализирует новый экземпляр этого класса.
|
Модификатор и Тип | Метод и Описание |
---|---|
Канал |
inheritedChannel()
Возвращает канал, наследованный из объекта, который создал эту виртуальную машину Java.
|
abstract DatagramChannel |
openDatagramChannel()
Открывает канал дейтаграммы.
|
abstract DatagramChannel |
openDatagramChannel(ProtocolFamily family)
Открывает канал дейтаграммы.
|
abstract Pipe |
openPipe()
Открывает канал.
|
abstract AbstractSelector |
openSelector()
Открывает селектор.
|
abstract ServerSocketChannel |
openServerSocketChannel()
Открывает канал сокета сервера.
|
abstract SocketChannel |
openSocketChannel()
Открывает канал сокета.
|
static SelectorProvider |
provider()
Возвращает селекторного провайдера по умолчанию в масштабе всей системы для этого вызова виртуальной машины Java.
|
protected SelectorProvider()
SecurityException
- Если менеджер безопасности был установлен, и он отрицает RuntimePermission
("selectorProvider")public static SelectorProvider provider()
Первый вызов этого метода определяет местоположение объекта провайдера по умолчанию следующим образом:
Если системное свойство java.nio.channels.spi.SelectorProvider определяется тогда, оно берется, чтобы быть полностью определенным именем конкретного класса провайдера. Класс загружается и инстанцируется; если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Если класс провайдера был установлен в файле фляги, который видим к системному загрузчику класса, и тот файл фляги содержит конфигурационный файл провайдера под названием java.nio.channels.spi.SelectorProvider в каталоге META-INF/services ресурса, то имя первого класса, определенное в том файле, берется. Класс загружается и инстанцируется; если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Наконец, если никакой провайдер не был определен ни одним из вышеупомянутых средств тогда, класс провайдера системного значения по умолчанию инстанцируют, и результат возвращается.
Последующие вызовы этого метода возвращают провайдера, который был возвращен первым вызовом.
public abstract DatagramChannel openDatagramChannel() throws IOException
IOException
public abstract DatagramChannel openDatagramChannel(ProtocolFamily family) throws IOException
family
- Семейство протоколаUnsupportedOperationException
- Если указанное семейство протокола не поддерживаетсяIOException
- Если ошибка ввода-вывода происходитpublic abstract Pipe openPipe() throws IOException
IOException
public abstract AbstractSelector openSelector() throws IOException
IOException
public abstract ServerSocketChannel openServerSocketChannel() throws IOException
IOException
public abstract SocketChannel openSocketChannel() throws IOException
IOException
public Channel inheritedChannel() throws IOException
На многих операционных системах процесс, таких как виртуальная машина Java, может быть запущен способом, который позволяет процессу наследовать канал от объекта, который создал процесс. Способ, которым это делается, системно-зависим, как возможные объекты, с которыми может быть соединен канал. Например, на системах UNIX, демон Интернет сервисов (inetd) используется, чтобы запустить программы к запросам на обслуживание, когда запрос прибывает в связанный сетевой порт. В этом примере процесс, который запускается, наследовал канал, представляющий сетевой сокет.
В случаях, где наследованный канал представляет сетевой сокет тогда Channel
тип, возвращенный этим методом, определяется следующим образом:
Если наследованный канал представляет потоковый соединенный сокет тогда a SocketChannel
возвращается. Канал сокета, по крайней мере первоначально, в блокировании режима, связанного с адресом сокета, и соединен с коллегой.
Если наследованный канал представляет потоковый сокет слушания тогда a ServerSocketChannel
возвращается. Канал сокета сервера, по крайней мере первоначально, в блокировании режима, и связан с адресом сокета.
Если наследованный канал является ориентированным на дейтаграмму сокетом тогда a DatagramChannel
возвращается. Канал дейтаграммы, по крайней мере первоначально, в блокировании режима, и связан с адресом сокета.
В дополнение к ориентированным на сеть описанным каналам этот метод может возвратить другие виды каналов в будущем.
Первый вызов этого метода создает канал, который возвращается. Последующие вызовы этого метода возвращают тот же самый канал.
IOException
- Если ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности был установлен, и он отрицает RuntimePermission
("inheritedChannel")
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.