Condividi tramite


SocketChannel Classe

Definizione

Canale selezionabile per 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 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 e 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 causerà la creazione di un'operazione NotYetConnectedException di I/O. 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. Se un canale socket è connesso può essere determinato richiamando il #isConnected isConnected relativo metodo.

I canali socket supportano una connessione senza blocco:  Un canale socket può essere creato e il processo di definizione del collegamento al socket remoto può essere avviato tramite il #connect connect metodo per il completamento successivo dal #finishConnect finishConnect metodo . Se un'operazione di connessione è in corso 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 viene bloccato in un'operazione di lettura nel 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à un AsynchronousCloseExceptionoggetto .

Le opzioni socket vengono configurate usando il #setOption(SocketOption,Object) setOption metodo . I canali socket supportano le opzioni seguenti: <blockquote table class="striped"><didascalia style="display:none><>"Socket options</didascalia<> 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"/><th td> Le dimensioni del buffer <<di ricezione socket /td/<><>tr tr th scope="row">>java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE<></th td td Keep connection alive </td><></tr tr<>th scope="row<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR>">java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th><> td td Re-use address<<> /td<>/tr<><tr><th scope="row"<>java.net.StandardSocketOptions#SO_LINGER SO_LINGER/th td td Linger on close if data is present (when configur in block 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 Opzioni aggiuntive (implementazione> specifica) possono essere supportate anche.

I canali socket sono sicuri per l'uso da 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ò essere scritto 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 viene bloccata fino al completamento della chiamata.

Aggiunta nella versione 1.4.

Documentazione Java per java.nio.channels.SocketChannel.

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

SocketChannel(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

SocketChannel(SelectorProvider)

Inizializza una nuova istanza della classe.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
IsBlocking

Indica se questo 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 questo canale è aperto.

(Ereditato da AbstractInterruptibleChannel)
IsRegistered

Indica se questo canale è registrato con uno o più selettore.

(Ereditato da AbstractSelectableChannel)
JniIdentityHashCode

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
JniPeerMembers

Canale selezionabile per socket di connessione orientati al flusso.

LocalAddress

Canale selezionabile per socket di connessione orientati al flusso.

PeerReference

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
RemoteAddress

Canale selezionabile per 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

Begin()

Contrassegna l'inizio di un'operazione di I/O che potrebbe bloccare in modo indefinito.

(Ereditato da AbstractInterruptibleChannel)
Bind(SocketAddress)

Aggiunto in 1.

BlockingLock()

Ottiene l'oggetto utilizzato per la sincronizzazione di register e configureBlocking.

(Ereditato da AbstractSelectableChannel)
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 socket di connessione orientati al flusso.

Dispose()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
Dispose(Boolean)

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
End(Boolean)

Contrassegna la fine di un'operazione di I/O che potrebbe bloccare in modo indefinito.

(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 socket di connessione orientati al flusso.

GetHashCode()

Restituisce un valore del 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 in un oggetto quando Garbage Collection determina che non sono presenti più 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 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.

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[])

Legge i byte da questo canale socket e li archivia nella matrice specificata di buffer.

Read(ByteBuffer[], Int32, Int32)

Legge i byte da questo canale socket in un subset dei buffer specificati.

Register(Selector, Operations)

Registra questo canale con il selettore specificato, restituendo una chiave di selezione.

(Ereditato da SelectableChannel)
Register(Selector, Operations, Object)

Registra questo canale con il selettore specificato, restituendo una chiave di selezione.

(Ereditato da AbstractSelectableChannel)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetOption(ISocketOption, Object)

Aggiunto 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>()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
ValidOps()

Restituisce un set di operazioni che identifica le operazioni supportate del canale.

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)

Scrive byte dal buffer di byte specificato a questo canale socket.

Write(ByteBuffer[])

Scrive byte da tutti i buffer di byte specificati in questo canale socket.

Write(ByteBuffer[], Int32, Int32)

Tenta di scrivere un subset dei byte specificati dai buffer a questo canale socket.

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.Finalized()

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Canale selezionabile per socket di connessione orientati al flusso.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Canale selezionabile per 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 selezionabile per socket di connessione orientati al flusso.

GetJniTypeName(IJavaPeerable)

Canale selezionabile per socket di connessione orientati al flusso.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

Canale selezionabile per socket di connessione orientati al flusso.

WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)

Canale selezionabile per socket di connessione orientati al flusso.

ReadAsync(IReadableByteChannel, ByteBuffer)

Canale selezionabile per socket di connessione orientati al flusso.

ReadAsync(IScatteringByteChannel, ByteBuffer[])

Canale selezionabile per socket di connessione orientati al flusso.

ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)

Canale selezionabile per socket di connessione orientati al flusso.

WriteAsync(IWritableByteChannel, ByteBuffer)

Canale selezionabile per socket di connessione orientati al flusso.

Si applica a