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 |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| IsBlocking |
Указывает, находится ли этот канал в режиме блокировки. (Унаследовано от AbstractSelectableChannel) |
| IsConnected |
Указывает, подключен ли сокет этого канала. |
| IsConnectionPending |
Указывает, пытается ли подключиться сокет этого канала. |
| IsOpen |
Возвращает значение true, если этот канал открыт. (Унаследовано от AbstractInterruptibleChannel) |
| IsRegistered |
Указывает, зарегистрирован ли этот канал с одним или несколькими селекторами. (Унаследовано от AbstractSelectableChannel) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Канал, доступный для потокового подключения сокетов. (Унаследовано от JavaObject) |
| JniPeerMembers |
Канал, доступный для потокового подключения сокетов. |
| LocalAddress |
Возвращает адрес сокета, к которому привязан сокет этого канала, или |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| RemoteAddress |
Возвращает удаленный адрес, к которому подключен сокет этого канала, или |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя | Описание |
|---|---|
| Begin() |
Помечает начало операции ввода-вывода, которая может блокироваться на неопределенный срок. (Унаследовано от AbstractInterruptibleChannel) |
| Bind(SocketAddress) |
Добавлено в 1. |
| BlockingLock() |
Возвращает объект, используемый для синхронизации |
| 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 типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Канал, доступный для потокового подключения сокетов. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Канал, доступный для потокового подключения сокетов. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Канал, доступный для потокового подключения сокетов. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Канал, доступный для потокового подключения сокетов. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Канал, доступный для потокового подключения сокетов. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Канал, доступный для потокового подключения сокетов. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Канал, доступный для потокового подключения сокетов. |