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"<>подпись 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 |
Возвращает класс среды выполнения данного объекта |
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) |
Асинхронный канал для потоковых соединительных сокетов. |