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"<>подпись style="display:none">Socket options</подпись>< thead><th<>область="col">Option Name</th><th область="col">Description</th/tr/><>< thead tbody><tr><th область="row"java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF></th><td> Размер буфера <отправки сокета /td></tr<>th><область="row"java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF<>/th<>td> Размер буфера <приема сокета /td></tr><tr<>th область="row"java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE></th>><<Td> Сохранение активного <подключения /td></tr><th<>область="row"><java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR/th><td> Re-use address </td<>/tr><th><область="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th<>td> Disable the Nagle algorithm </td<>/tr></tbody<>/table></blockquote> Additional (зависит от реализации) также могут поддерживаться параметры.

<h2>Timeouts</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 License.

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

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()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

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

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

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

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

(Унаследовано от 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)

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

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