SocketChannel Класс

Определение

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

[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Interop.IJavaPeerable, 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"><подпись style="display:none">Socket options</подпись>< thead><tr<>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 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><tr<>th область="row"java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR<>/th<>td> Re-use address </td></tr><tr<>th область="row"<java.net.StandardSocketOptions#SO_LINGER SO_LINGER>/th<>td> Linger при закрытии, если данные присутствуют (при настройке только в режиме блокировки) </td<>/tr tr<><>th область="row"java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY></th><Td> Отключение алгоритма <Nagle /td></tr<>/tbody<>/table></blockquote> Также могут поддерживаться дополнительные параметры (для конкретной реализации).

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

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

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

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

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

SocketChannel(IntPtr, JniHandleOwnership)

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

SocketChannel(SelectorProvider)

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

Свойства

Class

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

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

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

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

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

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

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

IsConnectionPending

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

IsOpen

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

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

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

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

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

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

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

LocalAddress

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

PeerReference

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

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

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

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)

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

Dispose()

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

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

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

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

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

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

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

Read(ByteBuffer[], Int32, Int32)

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

Register(Selector, Operations)

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

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

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

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

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

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

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

ShutdownInput()

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

ShutdownOutput()

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

Socket()

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

ToArray<T>()

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

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

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

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

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

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

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

Wait()

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

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

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

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

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

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

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

Write(ByteBuffer[])

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

Write(ByteBuffer[], Int32, Int32)

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

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

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)

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

WriteAsync(IGatheringByteChannel, ByteBuffer[])

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

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

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

ReadAsync(IReadableByteChannel, ByteBuffer)

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

ReadAsync(IScatteringByteChannel, ByteBuffer[])

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

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

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

WriteAsync(IWritableByteChannel, ByteBuffer)

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

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