Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class SelectorProvider extends Object
Селекторный провайдер является конкретным подклассом этого class, который имеет конструктора нулевого параметра и реализует абстрактные методы, определенные ниже. Данный вызов виртуальной машины Java поддерживает единственный экземпляр провайдера значения по умолчанию в масштабе всей системы, который возвращается provider
метод. Первый вызов того метода определит местоположение провайдера значения по умолчанию как определено ниже.
Провайдер значения по умолчанию в масштабе всей системы используется статическими методами open DatagramChannel
, Pipe
, Selector
, ServerSocketChannel
, и SocketChannel
классы. Это также используется System.inheritedChannel()
метод. Программа может использовать провайдера кроме провайдера значения по умолчанию, инстанцируя того провайдера и затем непосредственно вызывая методы open, определенные в этом class.
Все методы в этом class безопасны для использования многократными параллельными потоками.
Модификатор | Конструктор и Описание |
---|---|
protected |
SelectorProvider()
Инициализирует новый экземпляр этого class.
|
Модификатор и Тип | Метод и Описание |
---|---|
Канал |
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 определяется тогда, оно берется, чтобы быть полностью определенным именем конкретного провайдера class. class загружается и инстанцируется; если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Если провайдер, class был установлен в файле фляги, который видим к системе загрузчик class, и тот файл фляги, содержит конфигурационный файл провайдера под названием java.nio.channels.spi.SelectorProvider в каталоге META-INF/services ресурса, то первое имя class, определенное в том файле, берется. class загружается и инстанцируется; если этот процесс перестал работать тогда, неустановленная ошибка бросается.
Наконец, если никакой провайдер не был определен ни одним из вышеупомянутых средств тогда провайдер системного значения по умолчанию, class инстанцируют, и результат возвращается.
Последующие вызовы этого метода возвращают провайдера, который был возвращен первым вызовом.
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 и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92