SocketChannel Класс

Определение

Канал, доступный для потокового подключения сокетов.

[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Nio.Channels.IByteChannel, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel
[<Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)>]
type SocketChannel = class
    inherit AbstractSelectableChannel
    interface IByteChannel
    interface IReadableByteChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IWritableByteChannel
    interface IGatheringByteChannel
    interface IScatteringByteChannel
Наследование
Атрибуты
Реализации

Комментарии

Канал, доступный для потокового подключения сокетов.

Канал сокета создается путем вызова одного из #open open методов этого класса. Невозможно создать канал для произвольного существующего сокета. Только что созданный канал сокета открыт, но еще не подключен. Попытка вызвать операцию ввода-вывода при несоединяемом канале приведет NotYetConnectedException к возникновению ошибки. Канал сокета можно подключить, вызвав его #connect connect метод. После подключения канал сокета остается подключенным, пока не будет закрыт. Независимо от того, подключен ли канал сокета, можно определить путем вызова метода #isConnected isConnected .

Каналы сокетов поддерживают неблокирующее подключение:> Канал сокета может быть создан, и процесс установки связи с удаленным сокетом может быть инициирован с помощью #connect connect метода для последующего #finishConnect finishConnect завершения методом. Независимо от того, выполняется ли операция подключения, можно определить путем вызова #isConnectionPending isConnectionPending метода.

Каналы сокетов поддерживают асинхронное завершение работы, аналогично асинхронной операции закрытия, указанной Channel в классе. Если входная сторона сокета завершается одним потоком, а другой поток блокируется в операции чтения в канале сокета, операция чтения в блокированном потоке завершится без чтения байтов и вернет.-1 Если выходная сторона сокета завершается одним потоком, а другой поток блокируется в операции записи в канале сокета, то заблокированный поток получит AsynchronousCloseException.

Параметры сокета настраиваются с помощью #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> Размер буфера <отправки сокета /td></tr><tr><th scope="row">java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th><td> Размер буфера <получения сокета /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#SO_LINGER SO_LINGER</th><Td Linger при закрытии, если данные присутствуют (только при настройке в режиме блокировки) >/td<></tr tr><><th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> алгоритм </td></tr></tbody></table></blockquote> Additional (реализация конкретно) могут также поддерживаться.

Каналы сокета безопасны для использования несколькими параллельными потоками. Они поддерживают параллельное чтение и запись, хотя в большинстве случаев один поток может читаться, и в любой момент может записываться по крайней мере один поток. #connect connect Методы #finishConnect finishConnect синхронизированы друг с другом, и попытка инициировать операцию чтения или записи во время вызова одного из этих методов будет блокироваться до завершения этого вызова.

Добавлено в версии 1.4.

Java документации по java.nio.channels.SocketChannel.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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

Имя Описание
SocketChannel(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

SocketChannel(SelectorProvider)

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

Свойства

Имя Описание
Class

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

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

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

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

Указывает, находится ли этот канал в режиме блокировки.

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

Указывает, подключен ли сокет этого канала.

IsConnectionPending

Указывает, пытается ли подключиться сокет этого канала.

IsOpen

Возвращает значение true, если этот канал открыт.

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

Указывает, зарегистрирован ли этот канал с одним или несколькими селекторами.

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

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

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

Канал, доступный для потокового подключения сокетов.

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

Канал, доступный для потокового подключения сокетов.

LocalAddress

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

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

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

Возвращает удаленный адрес, к которому подключен сокет этого канала, или null если сокет не подключен.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя Описание
Begin()

Помечает начало операции ввода-вывода, которая может блокироваться на неопределенный срок.

(Унаследовано от AbstractInterruptibleChannel)
Bind(SocketAddress)

Добавлено в 1.

BlockingLock()

Возвращает объект, используемый для синхронизации register и configureBlocking.

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

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

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

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

(Унаследовано от AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

Изменяет режим блокировки этого канала.

(Унаследовано от AbstractSelectableChannel)
Connect(SocketAddress)

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

ConnectAsync(SocketAddress)

Канал, доступный для потокового подключения сокетов.

Construct(JniObjectReference, JniObjectReferenceOptions)

Канал, доступный для потокового подключения сокетов.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Канал, доступный для потокового подключения сокетов.

(Унаследовано от JavaObject)
End(Boolean)

Помечает конец операции ввода-вывода, которая может блокироваться на неопределенный срок.

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

Канал, доступный для потокового подключения сокетов.

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

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

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

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

FinishConnectAsync()

Канал, доступный для потокового подключения сокетов.

GetHashCode()

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

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

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

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

Закрывает этот выбираемый канал.

(Унаследовано от AbstractSelectableChannel)
ImplConfigureBlocking(Boolean)

Изменяет режим блокировки этого канала.

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

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

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

Возвращает ключ выбора этого канала для указанного селектора.

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

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

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

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

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

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

Open(SocketAddress)

Открывает канал сокета и подключает его к удаленному адресу.

Provider()

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

(Унаследовано от AbstractSelectableChannel)
Read(ByteBuffer)

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

Read(ByteBuffer[], Int32, Int32)

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

Read(ByteBuffer[])

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

Register(Selector, Operations, Object)

Регистрирует этот канал с заданным селектором, возвращая ключ выбора.

(Унаследовано от AbstractSelectableChannel)
Register(Selector, Operations)

Регистрирует этот канал с заданным селектором, возвращая ключ выбора.

(Унаследовано от SelectableChannel)
SetHandle(IntPtr, JniHandleOwnership)

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

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

Добавлено в 1.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Канал, доступный для потокового подключения сокетов.

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

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

ShutdownOutput()

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

Socket()

Извлекает сокет, связанный с этим каналом.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

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

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

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

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

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

Возвращает набор операций, определяющий поддерживаемые операции этого канала.

Wait()

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

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

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

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

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

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

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

Write(ByteBuffer[], Int32, Int32)

Пытается записать подмножество заданных байтов из буферов в этот канал сокета.

Write(ByteBuffer[])

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

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

Имя Описание
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 типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Канал, доступный для потокового подключения сокетов.

ReadAsync(IReadableByteChannel, ByteBuffer)

Канал, доступный для потокового подключения сокетов.

ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)

Канал, доступный для потокового подключения сокетов.

ReadAsync(IScatteringByteChannel, ByteBuffer[])

Канал, доступный для потокового подключения сокетов.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)

Канал, доступный для потокового подключения сокетов.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

Канал, доступный для потокового подключения сокетов.

WriteAsync(IWritableByteChannel, ByteBuffer)

Канал, доступный для потокового подключения сокетов.

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