AsynchronousSocketChannel Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронный канал для потокового подключения сокетов.
[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, Java.Nio.Channels.IAsynchronousByteChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousSocketChannel = class
inherit Object
interface IAsynchronousByteChannel
interface IAsynchronousChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Наследование
- Атрибуты
- Реализации
Комментарии
Асинхронный канал для потокового подключения сокетов.
Асинхронные каналы сокета создаются одним из двух способов. Созданное создается AsynchronousSocketChannel путем вызова одного из методов, определенных #open open этим классом. Только что созданный канал открыт, но еще не подключен. Подключение AsynchronousSocketChannel создается при подключении к сокету AsynchronousServerSocketChannelобъекта. Невозможно создать асинхронный канал сокета для произвольного существующего java.net.Socket socket.
Созданный канал подключается путем вызова метода #connect connect . После подключения канал остается подключенным, пока он не будет закрыт. Независимо от того, подключен ли канал сокета, можно определить путем вызова метода #getRemoteAddress getRemoteAddress . Попытка вызвать операцию ввода-вывода при несоединяемом канале приведет NotYetConnectedException к возникновению ошибки.
Каналы этого типа безопасны для использования несколькими параллельными потоками. Они поддерживают параллельное чтение и запись, хотя в любой момент может быть невыполнена одна операция чтения и одна операция записи. Если поток инициирует операцию чтения до завершения предыдущей операции чтения, ReadPendingException создается исключение. Аналогичным образом попытка инициировать операцию записи до завершения предыдущей записи вызовет исключение WritePendingException.
Параметры сокета настраиваются с помощью #setOption(SocketOption,Object) setOption метода. Асинхронные каналы сокетов поддерживают следующие параметры: <blockquote><table class="striped"><caption style="display:none">Socket options</caption><thead><tr th><scope="col"Option Name>/th<>th scope="col"<>description</><th/tr></thead><tbody tbody><><th scope="row">java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</><th td> Size of the socket send buffer /td/tr<><>th scope="row"<></th>java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUFtdd< буфер >получения сокета /td<><>/<><>tr tr th scope="row"<>java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE/<>th td Keep connection alive </td><>/<><>tr tr th scope="row"<>java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR/<>th td< Re-use address >/td<>/tr<><>th scope="row"<>java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> Disable the Nagle algorithm </td></tr></tbody></table></blockquote> Additional (implementation specific) options также может быть поддерживается.
<время ожидания> h2</h2>
Методы #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read , #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write определенные этим классом, позволяют задать время ожидания при инициировании операции чтения или записи. Если время ожидания истекает до завершения операции, операция завершается с исключением InterruptedByTimeoutException. Время ожидания может оставить канал или базовое подключение в несогласованном состоянии. Если реализация не может гарантировать, что байты не считывались из канала, он помещает канал в конкретное <состояние> ошибки em<или em> реализации. Следующая попытка инициировать read операцию приводит к возникновению непреднаказаемого исключения среды выполнения. Аналогично, если write время ожидания операции и реализация не может гарантировать, что байты не были записаны в канал, то дальнейшие попытки к write каналу приводят к возникновению неопределенного исключения среды выполнения. Когда истекает время ожидания, состояние буфера ByteBufferили последовательности буферов для операции ввода-вывода не определено. Буферы должны быть удалены или по крайней мере необходимо принять меры, чтобы убедиться, что буферы недоступны, пока канал остается открытым. Все методы, принимаюющие параметры времени ожидания, обрабатывают значения меньше или равно нулю, чтобы означать, что операция ввода-вывода не истекает.
Добавлено в версии 1.7.
Java документации по java.nio.channels.AsynchronousSocketChannel.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя | Описание |
|---|---|
| AsynchronousSocketChannel(AsynchronousChannelProvider) |
Инициализирует новый экземпляр этого класса. |
| AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
Асинхронный канал для потокового подключения сокетов. |
Свойства
| Имя | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsOpen |
Асинхронный канал для потокового подключения сокетов. |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| JniPeerMembers |
Асинхронный канал для потокового подключения сокетов. |
| LocalAddress |
Асинхронный канал для потокового подключения сокетов. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| RemoteAddress |
Асинхронный канал для потокового подключения сокетов. |
| ThresholdClass |
Асинхронный канал для потокового подключения сокетов. |
| ThresholdType |
Асинхронный канал для потокового подключения сокетов. |
Методы
| Имя | Описание |
|---|---|
| Bind(SocketAddress) |
Асинхронный канал для потокового подключения сокетов. |
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Close() |
Закрывает этот канал. |
| Connect(SocketAddress, Object, ICompletionHandler) |
Подключает этот канал. |
| Connect(SocketAddress) |
Подключает этот канал. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| Equals(Object) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Open() |
Открывает асинхронный канал сокета. |
| Open(AsynchronousChannelGroup) |
Открывает асинхронный канал сокета. |
| Provider() |
Возвращает поставщика, создавшего этот канал. |
| Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Считывает последовательность байтов из этого канала в заданный буфер. |
| Read(ByteBuffer, Object, ICompletionHandler) |
Асинхронный канал для потокового подключения сокетов. |
| Read(ByteBuffer) |
Асинхронный канал для потокового подключения сокетов. |
| Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Считывает последовательность байтов из этого канала в подсезону заданных буферов. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetOption(ISocketOption, Object) |
Асинхронный канал для потокового подключения сокетов. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| ShutdownInput() |
Завершение работы подключения для чтения без закрытия канала. |
| ShutdownOutput() |
Завершение подключения для записи без закрытия канала. |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Записывает последовательность байтов в этот канал из заданного буфера. |
| Write(ByteBuffer, Object, ICompletionHandler) |
Асинхронный канал для потокового подключения сокетов. |
| Write(ByteBuffer) |
Асинхронный канал для потокового подключения сокетов. |
| Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Записывает последовательность байтов в этот канал из подсефференции заданных буферов. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Асинхронный канал для потокового подключения сокетов. |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Асинхронный канал для потокового подключения сокетов. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |