AsynchronousSocketChannel Класс

Определение

Асинхронный канал для потокового подключения сокетов.

[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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
Атрибуты
Реализации

Комментарии

Асинхронный канал для потокового подключения сокетов.

Асинхронные каналы сокетов создаются одним из двух способов. Созданное создается 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><<>tr>< th scope="row"><java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF/><th td> Размер отправки сокета buffer /td/tr<>><th scope="row"<java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF>/th><tdd> буфер <получения сокета /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.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

AsynchronousSocketChannel(AsynchronousChannelProvider)

Инициализирует новый экземпляр этого класса.

AsynchronousSocketChannel(IntPtr, JniHandleOwnership)

Асинхронный канал для потокового подключения сокетов.

Свойства

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsOpen

Асинхронный канал для потокового подключения сокетов.

JniIdentityHashCode

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
JniPeerMembers

Асинхронный канал для потокового подключения сокетов.

LocalAddress

Асинхронный канал для потокового подключения сокетов.

PeerReference

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
RemoteAddress

Асинхронный канал для потокового подключения сокетов.

ThresholdClass

Асинхронный канал для потокового подключения сокетов.

ThresholdType

Асинхронный канал для потокового подключения сокетов.

Методы

Bind(SocketAddress)

Асинхронный канал для потокового подключения сокетов.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Закрывает этот канал.

Connect(SocketAddress)

Подключает этот канал.

Connect(SocketAddress, Object, ICompletionHandler)

Подключает этот канал.

Dispose()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
Dispose(Boolean)

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Open()

Открывает асинхронный канал сокета.

Open(AsynchronousChannelGroup)

Открывает асинхронный канал сокета.

Provider()

Возвращает поставщика, создавшего этот канал.

Read(ByteBuffer)

Асинхронный канал для потокового подключения сокетов.

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Считывает последовательность байтов из этого канала в заданный буфер.

Read(ByteBuffer, Object, ICompletionHandler)

Асинхронный канал для потокового подключения сокетов.

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Считывает последовательность байтов из этого канала в подсезону заданных буферов.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetOption(ISocketOption, Object)

Асинхронный канал для потокового подключения сокетов.

ShutdownInput()

Завершение работы подключения для чтения без закрытия канала.

ShutdownOutput()

Завершение подключения для записи без закрытия канала.

ToArray<T>()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Write(ByteBuffer)

Асинхронный канал для потокового подключения сокетов.

Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Записывает последовательность байтов в этот канал из заданного буфера.

Write(ByteBuffer, Object, ICompletionHandler)

Асинхронный канал для потокового подключения сокетов.

Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Записывает последовательность байтов в этот канал из подсефференции заданных буферов.

Явные реализации интерфейса

IJavaPeerable.Disposed()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Асинхронный канал для потокового подключения сокетов.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Асинхронный канал для потокового подключения сокетов.

GetJniTypeName(IJavaPeerable)

Асинхронный канал для потокового подключения сокетов.

Применяется к