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 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 .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 se conecta 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"><subtítulo style="display:none">Socket options</subtítulo<> 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> El tamaño del búfer <de envío de socket /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 tr><><th scope="row"<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR
>/th><td> Re-use address </Td><También se pueden admitir las opciones /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 specific).
<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, el canal se coloca en un estado de error específico de <>la implementación/em>.< Un intento posterior de iniciar una read
operación hace que se inicie una excepción en tiempo de ejecución no especificada. Del mismo modo, si se agota el tiempo de espera de una write
operación 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 menores o iguales que cero para significar que la operación de E/S no ha agotado el tiempo de espera.
Se agregó 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 y se usan según los términos descritos en la 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() |
Llamado por 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() |
Cierre 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 despierte, 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 <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 <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. |