SocketChannel 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 selezionabile per i socket di connessione orientati al flusso.
[Android.Runtime.Register("java/nio/channels/SocketChannel", DoNotGenerateAcw=true)]
public abstract class SocketChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Interop.IJavaPeerable, 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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Canale selezionabile per i socket di connessione orientati al flusso.
Un canale socket viene creato richiamando uno dei #open open metodi di questa classe. Non è possibile creare un canale per un socket arbitrario preesistente. Un canale socket appena creato è aperto ma non ancora connesso. Un tentativo di richiamare un'operazione di I/O su un canale non connesso genererà un'eccezione NotYetConnectedException . Un canale socket può essere connesso richiamando il #connect connect relativo metodo. Una volta connesso, un canale socket rimane connesso fino a quando non viene chiuso. Indica se un canale socket è connesso può essere determinato richiamando il relativo #isConnected isConnected metodo.
I canali socket supportano la connessione non bloccando: È possibile creare un canale socket e il processo di stabilire il collegamento al socket remoto può essere avviato tramite il metodo per il #connect connect completamento successivo tramite il #finishConnect finishConnect metodo . Se è in corso o meno un'operazione di connessione può essere determinata richiamando il #isConnectionPending isConnectionPending metodo .
I canali socket supportano l'arresto asincrono, simile all'operazione di chiusura asincrona specificata nella Channel classe . Se il lato di input di un socket viene arrestato da un thread mentre un altro thread è bloccato in un'operazione di lettura sul canale del socket, l'operazione di lettura nel thread bloccato verrà completata senza leggere alcun byte e restituirà -1. Se il lato di output di un socket viene arrestato da un thread mentre un altro thread viene bloccato in un'operazione di scrittura sul canale del socket, il thread bloccato riceverà .AsynchronousCloseException
Le opzioni socket vengono configurate usando il #setOption(SocketOption,Object) setOption metodo . I canali socket 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 buffer <di invio socket /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><><th scope="row">java.net.StandardSocketOptions#SO_LINGER SO_LINGER</th><td> Linger 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 (implementation specific) options can also be supported.
I canali socket sono sicuri per l'uso da parte di più thread simultanei. Supportano la lettura e la scrittura simultanee, anche se al massimo un thread può essere letto e al massimo un thread può scrivere in qualsiasi momento. I #connect connect metodi e #finishConnect finishConnect vengono sincronizzati reciprocamente tra loro e un tentativo di avviare un'operazione di lettura o scrittura mentre una chiamata di uno di questi metodi è in corso bloccherà fino al completamento di tale chiamata.
Aggiunta nella versione 1.4.
per java.nio.channels.SocketChannel.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Costruttori
| Nome | Descrizione |
|---|---|
| SocketChannel(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
| SocketChannel(SelectorProvider) |
Inizializza una nuova istanza di questa classe. |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| IsBlocking |
Indica se il canale è in modalità di blocco. (Ereditato da AbstractSelectableChannel) |
| IsConnected |
Indica se il socket del canale è connesso. |
| IsConnectionPending |
Indica se il socket del canale sta ancora tentando di connettersi. |
| IsOpen |
Restituisce true se il canale è aperto. (Ereditato da AbstractInterruptibleChannel) |
| IsRegistered |
Indica se questo canale è registrato con uno o più selettori. (Ereditato da AbstractSelectableChannel) |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniPeerMembers |
Canale selezionabile per i socket di connessione orientati al flusso. |
| LocalAddress |
Canale selezionabile per i socket di connessione orientati al flusso. |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| RemoteAddress |
Canale selezionabile per i socket di connessione orientati al flusso. |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
| Nome | Descrizione |
|---|---|
| Begin() |
Contrassegna l'inizio di un'operazione di I/O che potrebbe bloccarsi a tempo indeterminato. (Ereditato da AbstractInterruptibleChannel) |
| Bind(SocketAddress) |
Aggiunta in 1. |
| BlockingLock() |
Ottiene l'oggetto utilizzato per la sincronizzazione di |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| Close() |
Chiude questo canale. (Ereditato da AbstractInterruptibleChannel) |
| ConfigureBlocking(Boolean) |
Regola la modalità di blocco del canale. (Ereditato da AbstractSelectableChannel) |
| Connect(SocketAddress) |
Connette il socket del canale. |
| ConnectAsync(SocketAddress) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| End(Boolean) |
Contrassegna la fine di un'operazione di I/O che potrebbe bloccarsi a tempo indeterminato. (Ereditato da AbstractInterruptibleChannel) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| FinishConnect() |
Termina il processo di connessione di un canale socket. |
| FinishConnectAsync() |
Canale selezionabile per i socket di connessione orientati al flusso. |
| GetHashCode() |
Restituisce un valore di codice hash per l'oggetto . (Ereditato da Object) |
| ImplCloseChannel() |
Chiude questo canale. (Ereditato da AbstractSelectableChannel) |
| ImplCloseSelectableChannel() |
Chiude questo canale selezionabile. (Ereditato da AbstractSelectableChannel) |
| ImplConfigureBlocking(Boolean) |
Regola la modalità di blocco del canale. (Ereditato da AbstractSelectableChannel) |
| JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| KeyFor(Selector) |
Ottiene la chiave di selezione del canale per il selettore specificato. (Ereditato da AbstractSelectableChannel) |
| 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. |
| Open(SocketAddress) |
Apre un canale socket e lo connette a un indirizzo remoto. |
| Provider() |
Restituisce il provider che ha creato questo canale. (Ereditato da AbstractSelectableChannel) |
| Read(ByteBuffer) |
Legge i byte da questo canale socket nel buffer specificato. |
| Read(ByteBuffer[], Int32, Int32) |
Legge i byte da questo canale socket in un subset dei buffer specificati. |
| Read(ByteBuffer[]) |
Legge i byte da questo canale socket e li archivia nella matrice di buffer specificata. |
| Register(Selector, Operations, Object) |
Registra questo canale con il selettore specificato, restituendo una chiave di selezione. (Ereditato da AbstractSelectableChannel) |
| Register(Selector, Operations) |
Registra questo canale con il selettore specificato, restituendo una chiave di selezione. (Ereditato da SelectableChannel) |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| SetOption(ISocketOption, Object) |
Aggiunta in 1. |
| ShutdownInput() |
Arrestare la connessione per la lettura senza chiudere il canale. |
| ShutdownOutput() |
Arrestare la connessione per la scrittura senza chiudere il canale. |
| Socket() |
Recupera un socket associato a questo canale. |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto . (Ereditato da Object) |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| ValidOps() |
Restituisce un set di operazioni che identifica le operazioni supportate del canale. |
| 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) |
Scrive byte dal buffer di byte specificato in questo canale socket. |
| Write(ByteBuffer[], Int32, Int32) |
Tenta di scrivere un subset dei byte specificati dai buffer in questo canale socket. |
| Write(ByteBuffer[]) |
Scrive i byte da tutti i buffer di byte specificati in questo canale socket. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Notifica al runtime di interoperabilità che il peer gestito è stato eliminato. (Ereditato da Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito. (Ereditato da Object) |
| IJavaPeerable.Finalized() |
Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato. (Ereditato da Object) |
| IJavaPeerable.JniManagedPeerState |
Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI. (Ereditato da Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Imposta il codice hash dell'identità di interoperabilità per questo Java peer. (Ereditato da Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Imposta lo stato peer gestito e JNI per questo peer Java. (Ereditato da Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Imposta il riferimento all'oggetto JNI usato da questo peer gestito. (Ereditato da Object) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Canale selezionabile per i socket di connessione orientati al flusso. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Canale selezionabile per i socket di connessione orientati al flusso. |