AsynchronousSocketChannel 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 asincrónico para sockets de conexión orientados a flujos.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
Un canal asincrónico para sockets de conexión orientados a flujos.
Los canales de socket asincrónicos se crean de una de estas dos maneras. Se crea un objeto recién creado AsynchronousSocketChannel
invocando uno de los #open open
métodos definidos por esta clase. Un canal recién creado está abierto, pero aún no está conectado. Se crea una conexión AsynchronousSocketChannel
cuando se realiza una conexión al socket de un AsynchronousServerSocketChannel
. No es posible crear un canal de socket asincrónico para un elemento arbitrario y preexistente java.net.Socket socket
.
Un canal recién creado está conectado invocando su #connect connect
método; una vez conectado, un canal permanece conectado hasta que se cierra. Si un canal de socket está conectado o no puede determinarse invocando su #getRemoteAddress getRemoteAddress
método. Un intento de invocar una operación de E/S en un canal no conectado hará que se produzca una NotYetConnectedException
excepción .
Los canales de este tipo son seguros para su uso por varios subprocesos simultáneos. Admiten la lectura y escritura simultáneas, aunque como máximo una operación de lectura y una operación de escritura pueden estar pendientes en cualquier momento. Si un subproceso inicia una operación de lectura antes de que se haya completado una operación de lectura anterior, se producirá una ReadPendingException
excepción . Del mismo modo, un intento de iniciar una operación de escritura antes de que se haya completado una escritura anterior producirá un WritePendingException
.
Las opciones de socket se configuran mediante el #setOption(SocketOption,Object) setOption
método . Los canales de socket asincrónicos 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 envío de socket buffer </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<>><th scope="row"<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
>/th><td> Re-use address </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 (implementation specific) options may also be supported.
<h2>Timeouts</h2>
Los #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
métodos y #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
definidos por esta clase permiten especificar un tiempo de espera al iniciar una operación de lectura o escritura. Si el tiempo de espera transcurre antes de que se complete una operación, la operación se completa con la excepción InterruptedByTimeoutException
. Un tiempo de espera puede dejar el canal o la conexión subyacente en un estado incoherente. Cuando la implementación no puede garantizar que los bytes no se hayan leído desde el canal, coloca el canal en un estado< de error em>específico <de implementación/em>. Un intento posterior de iniciar una read
operación hace que se produzca una excepción en tiempo de ejecución no especificada. Del mismo modo, si una write
operación agota el tiempo de espera y la implementación no puede garantizar que no se hayan escrito bytes en el canal, se producirá write
una excepción en tiempo de ejecución no especificada. Cuando transcurre un tiempo de espera, no se define el estado de ByteBuffer
o la secuencia de búferes para la operación de E/S. Los búferes deben descartarse o, al menos, tener cuidado para asegurarse de que no se tiene acceso a los búferes mientras el canal permanece abierto. Todos los métodos que aceptan parámetros de tiempo de espera tratan los valores inferiores o iguales a cero para indicar que la operación de E/S no supera el tiempo de espera.
Agregado en la versión 1.7.
Documentación de Java para java.nio.channels.AsynchronousSocketChannel
.
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
AsynchronousSocketChannel(AsynchronousChannelProvider) |
Inicializa una nueva instancia de esta clase. |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Propiedades
Class |
Devuelve la clase en tiempo de ejecución de este |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
IsOpen |
Un canal asincrónico para sockets de conexión orientados a flujos. |
JniIdentityHashCode |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
JniPeerMembers |
Un canal asincrónico para sockets de conexión orientados a flujos. |
LocalAddress |
Un canal asincrónico para sockets de conexión orientados a flujos. |
PeerReference |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
RemoteAddress |
Un canal asincrónico para sockets de conexión orientados a flujos. |
ThresholdClass |
Un canal asincrónico para sockets de conexión orientados a flujos. |
ThresholdType |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Métodos
Bind(SocketAddress) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
Close() |
Cierra este canal. |
Connect(SocketAddress) |
Conecta este canal. |
Connect(SocketAddress, Object, ICompletionHandler) |
Conecta este canal. |
Dispose() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
Dispose(Boolean) |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
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) |
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 asincrónico. |
Open(AsynchronousChannelGroup) |
Abre un canal de socket asincrónico. |
Provider() |
Devuelve el proveedor que creó este canal. |
Read(ByteBuffer) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Lee una secuencia de bytes de este canal en el búfer especificado. |
Read(ByteBuffer, Object, ICompletionHandler) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados. |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
SetOption(ISocketOption, Object) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
ShutdownInput() |
Apague la conexión para leer sin cerrar el canal. |
ShutdownOutput() |
Cierre la conexión para escribir sin cerrar el canal. |
ToArray<T>() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
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) |
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, 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) |
Write(ByteBuffer) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Escribe una secuencia de bytes en este canal desde el búfer especificado. |
Write(ByteBuffer, Object, ICompletionHandler) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados. |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.Finalized() |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.JniManagedPeerState |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Un canal asincrónico para sockets de conexión orientados a flujos. (Heredado de Object) |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
Un canal asincrónico para sockets de conexión orientados a flujos. |
GetJniTypeName(IJavaPeerable) |
Un canal asincrónico para sockets de conexión orientados a flujos. |