AsynchronousSocketChannel Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Canale asincrono per i socket di connessione orientati ai flussi.
[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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Canale asincrono per i socket di connessione orientati ai flussi.
I canali socket asincroni vengono creati in uno dei due modi seguenti. Un oggetto appena creato AsynchronousSocketChannel
viene creato richiamando uno dei #open open
metodi definiti da questa classe. Un canale appena creato è aperto ma non ancora connesso. Una connessione AsynchronousSocketChannel
viene creata quando viene stabilita una connessione al socket di un oggetto AsynchronousServerSocketChannel
. Non è possibile creare un canale socket asincrono per un oggetto arbitrario preesistente java.net.Socket socket
.
Un canale appena creato viene connesso richiamando il #connect connect
relativo metodo. Una volta connesso, un canale rimane connesso fino a quando non viene chiuso. Indica se un canale socket è connesso può essere determinato richiamando il relativo #getRemoteAddress getRemoteAddress
metodo. Un tentativo di richiamare un'operazione di I/O su un canale non connesso genererà un'eccezione NotYetConnectedException
.
I canali di questo tipo sono sicuri per l'uso da parte di più thread simultanei. Supportano la lettura e la scrittura simultanee, anche se al massimo un'operazione di lettura e un'operazione di scrittura può essere in sospeso in qualsiasi momento. Se un thread avvia un'operazione di lettura prima del completamento di un'operazione di lettura precedente, verrà generata un'eccezione ReadPendingException
. Analogamente, un tentativo di avviare un'operazione di scrittura prima del completamento di una scrittura precedente genererà un'eccezione WritePendingException
.
Le opzioni socket vengono configurate usando il #setOption(SocketOption,Object) setOption
metodo . I canali socket asincroni supportano le opzioni seguenti: <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> Le dimensioni del socket send buffer </td></tr tr><<>th scope="row"<>java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF
/th><td> Le dimensioni del buffer <di ricezione 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#TCP_NODELAY TCP_NODELAY
</th<>td> Disabilitare le opzioni Nagle algorithm </td<>/tr></tbody></table></blockquote> Additional (implementazion specific) possono essere supportate.
<h2>Timeout/<h2>
I #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read
metodi e #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write
definiti da questa classe consentono di specificare un timeout quando si avvia un'operazione di lettura o scrittura. Se il timeout è trascorso prima del completamento di un'operazione, l'operazione viene completata con l'eccezione InterruptedByTimeoutException
. Un timeout può lasciare il canale o la connessione sottostante in uno stato incoerente. Se l'implementazione non garantisce che i byte non siano stati letti dal canale, inserisce il canale in uno stato< di errore em/em>> specifico <dell'implementazione. Un tentativo successivo di avviare un'operazione read
causa la generazione di un'eccezione di runtime non specificata. Analogamente, se si verifica un timeout di un'operazione write
e l'implementazione non può garantire che i byte non siano stati scritti nel canale, altri tentativi di raggiungere write
il canale causano la generazione di un'eccezione di runtime non specificata. Quando viene trascorso un timeout, lo stato dell'oggetto ByteBuffer
o la sequenza di buffer non è definito per l'operazione di I/O. I buffer devono essere eliminati o è necessario prestare almeno attenzione per assicurarsi che i buffer non siano accessibili mentre il canale rimane aperto. Tutti i metodi che accettano parametri di timeout trattano valori minori o uguali a zero per indicare che l'operazione di I/O non supera il timeout.
Aggiunta nella versione 1.7.
Documentazione java per java.nio.channels.AsynchronousSocketChannel
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Costruttori
AsynchronousSocketChannel(AsynchronousChannelProvider) |
Inizializza una nuova istanza della classe. |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
IsOpen |
Canale asincrono per i socket di connessione orientati ai flussi. |
JniIdentityHashCode |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
JniPeerMembers |
Canale asincrono per i socket di connessione orientati ai flussi. |
LocalAddress |
Canale asincrono per i socket di connessione orientati ai flussi. |
PeerReference |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
RemoteAddress |
Canale asincrono per i socket di connessione orientati ai flussi. |
ThresholdClass |
Canale asincrono per i socket di connessione orientati ai flussi. |
ThresholdType |
Canale asincrono per i socket di connessione orientati ai flussi. |
Metodi
Bind(SocketAddress) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Close() |
Chiude questo canale. |
Connect(SocketAddress, Object, ICompletionHandler) |
Connette questo canale. |
Connect(SocketAddress) |
Connette questo canale. |
Dispose() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
Dispose(Boolean) |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
Open() |
Apre un canale socket asincrono. |
Open(AsynchronousChannelGroup) |
Apre un canale socket asincrono. |
Provider() |
Restituisce il provider che ha creato questo canale. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Legge una sequenza di byte da questo canale nel buffer specificato. |
Read(ByteBuffer, Object, ICompletionHandler) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Read(ByteBuffer) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
SetOption(ISocketOption, Object) |
Canale asincrono per i socket di connessione orientati ai flussi. |
ShutdownInput() |
Arrestare la connessione per la lettura senza chiudere il canale. |
ShutdownOutput() |
Arrestare la connessione per la scrittura senza chiudere il canale. |
ToArray<T>() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione di stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Scrive una sequenza di byte in questo canale dal buffer specificato. |
Write(ByteBuffer, Object, ICompletionHandler) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Write(ByteBuffer) |
Canale asincrono per i socket di connessione orientati ai flussi. |
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Scrive una sequenza di byte in questo canale da una sottosequenza dei buffer specificati. |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.Finalized() |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Canale asincrono per i socket di connessione orientati ai flussi. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Canale asincrono per i socket di connessione orientati ai flussi. |
GetJniTypeName(IJavaPeerable) |
Canale asincrono per i socket di connessione orientati ai flussi. |