SocketChannel Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Un canal seleccionable para sockets de conexión orientados a flujos.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
Un canal seleccionable para sockets de conexión orientados a flujos.
Se crea un canal de socket invocando uno de los #open open métodos de esta clase. No es posible crear un canal para un socket arbitrario y preexistente. Un canal de socket recién creado está abierto, pero aún no está conectado. Un intento de invocar una operación de E/S en un canal no conectado hará que se produzca una NotYetConnectedException excepción . Un canal de socket se puede conectar invocando su #connect connect método; una vez conectado, un canal de socket permanece conectado hasta que se cierra. Si un canal de socket está conectado o no puede determinarse invocando su #isConnected isConnected método.
Los canales de socket admiten la conexión sin bloqueo: Se puede crear un canal de socket y el proceso de establecer el vínculo al socket remoto se puede iniciar a través del #connect connect método para su finalización posterior mediante el #finishConnect finishConnect método . Si hay o no una operación de conexión en curso puede determinarse invocando el #isConnectionPending isConnectionPending método .
Los canales de socket admiten el apagado asincrónico, que es similar a la operación de cierre asincrónica especificada en la Channel clase . Si un subproceso cierra el lado de entrada de un socket mientras otro subproceso está bloqueado en una operación de lectura en el canal del socket, la operación de lectura del subproceso bloqueado se completará sin leer ningún bytes y devolverá -1. Si el lado de salida de un socket se apaga mediante un subproceso mientras otro subproceso está bloqueado en una operación de escritura en el canal del socket, el subproceso bloqueado recibirá un AsynchronousCloseException.
Las opciones de socket se configuran mediante el #setOption(SocketOption,Object) setOption método . Los canales de socket admiten las siguientes opciones: <blockquote><table class="striped"><caption style="display:none">Socket options</caption><thead><tr><th scope="col">Option Name</th><scope="col"description></th></tr></thead><tbody><tr><th scope="row">java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</th><td> El tamaño del búfer <de envío de sockets /td></tr tr><><th scope="row">java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th><td> El tamaño del búfer <de recepción del socket /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 tr><><th scope="row">java.net.StandardSocketOptions#SO_LINGER SO_LINGER</th><td> Persist on close if data is present (when configured in blocking mode only) </td></tr tr><><th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> Disable the Nagle algorithm </td></tr/tbody><></table></blockquote> Additional (specific implementation) options may also be supported.
Los canales de socket son seguros para su uso por varios subprocesos simultáneos. Admiten la lectura y escritura simultáneas, aunque como máximo un subproceso puede estar leyendo y, como máximo, un subproceso puede estar escribiendo en un momento dado. Los #connect connect métodos y #finishConnect finishConnect se sincronizan mutuamente entre sí y un intento de iniciar una operación de lectura o escritura mientras una invocación de uno de estos métodos está en curso se bloqueará hasta que se complete esa invocación.
Agregado en la versión 1.4.
Documentación de Java para java.nio.channels.SocketChannel.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Constructores
| Nombre | Description |
|---|---|
| SocketChannel(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
| SocketChannel(SelectorProvider) |
Inicializa una nueva instancia de esta clase. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| IsBlocking |
Indica si este canal está en modo de bloqueo. (Heredado de AbstractSelectableChannel) |
| IsConnected |
Indica si el socket de este canal está conectado. |
| IsConnectionPending |
Indica si el socket de este canal sigue intentando conectarse. |
| IsOpen |
Devuelve true si este canal está abierto. (Heredado de AbstractInterruptibleChannel) |
| IsRegistered |
Indica si este canal está registrado con uno o varios selectores. (Heredado de AbstractSelectableChannel) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| JniPeerMembers |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| LocalAddress |
Devuelve la dirección del socket a la que está enlazado el socket de este canal o |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| RemoteAddress |
Devuelve la dirección remota a la que está conectado el socket de este canal o |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| Begin() |
Marca el principio de una operación de E/S que podría bloquearse indefinidamente. (Heredado de AbstractInterruptibleChannel) |
| Bind(SocketAddress) |
Agregado en 1. |
| BlockingLock() |
Obtiene el objeto utilizado para la sincronización de |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Close() |
Cierra este canal. (Heredado de AbstractInterruptibleChannel) |
| ConfigureBlocking(Boolean) |
Ajusta el modo de bloqueo de este canal. (Heredado de AbstractSelectableChannel) |
| Connect(SocketAddress) |
Conecta el socket de este canal. |
| ConnectAsync(SocketAddress) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| End(Boolean) |
Marca el final de una operación de E/S que podría bloquearse indefinidamente. (Heredado de AbstractInterruptibleChannel) |
| Equals(Object) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| FinishConnect() |
Finaliza el proceso de conexión de un canal de socket. |
| FinishConnectAsync() |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
| ImplCloseChannel() |
Cierra este canal. (Heredado de AbstractSelectableChannel) |
| ImplCloseSelectableChannel() |
Cierra este canal seleccionable. (Heredado de AbstractSelectableChannel) |
| ImplConfigureBlocking(Boolean) |
Ajusta el modo de bloqueo de este canal. (Heredado de AbstractSelectableChannel) |
| JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| KeyFor(Selector) |
Obtiene la clave de selección de este canal para el selector especificado. (Heredado de AbstractSelectableChannel) |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Open() |
Abre un canal de socket. |
| Open(SocketAddress) |
Abre un canal de socket y lo conecta a una dirección remota. |
| Provider() |
Devuelve el proveedor que creó este canal. (Heredado de AbstractSelectableChannel) |
| Read(ByteBuffer) |
Lee bytes de este canal de socket en el búfer especificado. |
| Read(ByteBuffer[], Int32, Int32) |
Lee bytes de este canal de socket en un subconjunto de los búferes especificados. |
| Read(ByteBuffer[]) |
Lee bytes de este canal de socket y los almacena en la matriz especificada de búferes. |
| Register(Selector, Operations, Object) |
Registra este canal con el selector especificado y devuelve una clave de selección. (Heredado de AbstractSelectableChannel) |
| Register(Selector, Operations) |
Registra este canal con el selector especificado y devuelve una clave de selección. (Heredado de SelectableChannel) |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetOption(ISocketOption, Object) |
Agregado en 1. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| ShutdownInput() |
Apague la conexión para leer sin cerrar el canal. |
| ShutdownOutput() |
Cierre la conexión para escribir sin cerrar el canal. |
| Socket() |
Recupera un socket asociado a este canal. |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| ValidOps() |
Devuelve un conjunto de operaciones que identifica las operaciones admitidas de este canal. |
| Wait() |
Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Write(ByteBuffer) |
Escribe bytes del búfer de bytes especificado en este canal de socket. |
| Write(ByteBuffer[], Int32, Int32) |
Intenta escribir un subconjunto de los bytes especificados de los búferes en este canal de socket. |
| Write(ByteBuffer[]) |
Escribe bytes de todos los búferes de bytes especificados en este canal de socket. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un canal seleccionable para sockets de conexión orientados a flujos. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Un canal seleccionable para sockets de conexión orientados a flujos. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Un canal seleccionable para sockets de conexión orientados a flujos. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Un canal seleccionable para sockets de conexión orientados a flujos. |