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 al flusso.
[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 al flusso.
I canali socket asincroni vengono creati in uno dei due modi. Viene creato un nuovo creato AsynchronousSocketChannel
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 eseguita una connessione al socket di un AsynchronousServerSocketChannel
oggetto . Non è possibile creare un canale socket asincrono per un oggetto arbitrario e 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. Se un canale socket è connesso può essere determinato richiamando il #getRemoteAddress getRemoteAddress
relativo metodo. Un tentativo di richiamare un'operazione di I/O su un canale non connesso causerà la creazione di un'operazione NotYetConnectedException
di I/O.
I canali di questo tipo sono sicuri per l'uso da più thread simultanei. Supportano la lettura e la scrittura simultanee, anche se alla maggior parte di 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'operazione ReadPendingException
di lettura. Analogamente, un tentativo di avviare un'operazione di scrittura prima del completamento di una scrittura precedente genererà un WritePendingException
oggetto .
Le opzioni socket vengono configurate usando il #setOption(SocketOption,Object) setOption
metodo . I canali socket asincroni supportano le opzioni seguenti: <blockquote table class="striped"><didascalia style="display:none><>"Socket options</didascalia<> 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> Le dimensioni del buffer di invio del socket /td>>><<</tr tr th scope="rowjava.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF
<<>>"/th td> Td Le dimensioni del buffer <<di ricezione 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 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 (implementazione> specifica) opzioni possono essere supportate anche.
<h2 Timeouts</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 scade 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 può garantire che i byte non siano stati letti dal canale, quindi inserisce il canale in uno stato< di errore em>/em> specifico <dell'implementazione. Un tentativo successivo di avviare un'operazione causa l'generazione di un'eccezione read
di runtime non specificata. Analogamente, se un'operazione write
non viene interrotta e l'implementazione non è in grado di garantire che i byte non siano stati scritti nel canale, altri tentativi write
per il canale causano la generazione di un'eccezione di runtime non specificata. Quando viene trascorso un timeout, lo stato di ByteBuffer
o la sequenza di buffer non viene definito per l'operazione di I/O. I buffer devono essere eliminati o almeno è necessario prestare attenzione per garantire che i buffer non siano accessibili mentre il canale rimane aperto. Tutti i metodi che accettano parametri di timeout trattano valori inferiori o uguali a zero per significare che l'operazione di I/O non esegue il timeout.
Aggiunta nella versione 1.7.
Documentazione Java per java.nio.channels.AsynchronousSocketChannel
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Costruttori
AsynchronousSocketChannel(AsynchronousChannelProvider) |
Inizializza una nuova istanza della classe. |
AsynchronousSocketChannel(IntPtr, JniHandleOwnership) |
Canale asincrono per i socket di connessione orientati al flusso. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle all'istanza di Android sottostante. (Ereditato da Object) |
IsOpen |
Canale asincrono per i socket di connessione orientati al flusso. |
JniIdentityHashCode |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
JniPeerMembers |
Canale asincrono per i socket di connessione orientati al flusso. |
LocalAddress |
Canale asincrono per i socket di connessione orientati al flusso. |
PeerReference |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
RemoteAddress |
Canale asincrono per i socket di connessione orientati al flusso. |
ThresholdClass |
Canale asincrono per i socket di connessione orientati al flusso. |
ThresholdType |
Canale asincrono per i socket di connessione orientati al flusso. |
Metodi
Bind(SocketAddress) |
Canale asincrono per i socket di connessione orientati al flusso. |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Close() |
Chiude questo canale. |
Connect(SocketAddress) |
Connette questo canale. |
Connect(SocketAddress, Object, ICompletionHandler) |
Connette questo canale. |
Dispose() |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
Dispose(Boolean) |
Canale asincrono per i socket di connessione orientati al flusso. (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 in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto. (Ereditato da Object) |
Notify() |
Riattiva un singolo thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio 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) |
Canale asincrono per i socket di connessione orientati al flusso. |
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 al flusso. |
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 al flusso. |
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 al flusso. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
Wait() |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.< (Ereditato da Object) |
Wait(Int64) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Write(ByteBuffer) |
Canale asincrono per i socket di connessione orientati al flusso. |
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 al flusso. |
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 al flusso. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
IJavaPeerable.Finalized() |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Canale asincrono per i socket di connessione orientati al flusso. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Canale asincrono per i socket di connessione orientati al flusso. |
GetJniTypeName(IJavaPeerable) |
Canale asincrono per i socket di connessione orientati al flusso. |