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
путем вызова одного из методов, определенных #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 |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsOpen |
Асинхронный канал для потокового подключения сокетов. |
JniIdentityHashCode |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от Object) |
JniPeerMembers |
Асинхронный канал для потокового подключения сокетов. |
LocalAddress |
Асинхронный канал для потокового подключения сокетов. |
PeerReference |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от Object) |
RemoteAddress |
Асинхронный канал для потокового подключения сокетов. |
ThresholdClass |
Асинхронный канал для потокового подключения сокетов. |
ThresholdType |
Асинхронный канал для потокового подключения сокетов. |
Методы
Bind(SocketAddress) |
Асинхронный канал для потокового подключения сокетов. |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Close() |
Закрывает этот канал. |
Connect(SocketAddress, Object, ICompletionHandler) |
Подключает этот канал. |
Connect(SocketAddress) |
Подключает этот канал. |
Dispose() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от Object) |
Dispose(Boolean) |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от Object) |
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) |
Асинхронный канал для потокового подключения сокетов. |
ShutdownInput() |
Завершение работы подключения для чтения без закрытия канала. |
ShutdownOutput() |
Завершение подключения для записи без закрытия канала. |
ToArray<T>() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от 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() |
Асинхронный канал для потокового подключения сокетов. (Унаследовано от 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) |
Асинхронный канал для потокового подключения сокетов. |