DatagramChannel.Send(ByteBuffer, SocketAddress) Metodo
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.
Invia un datagramma tramite questo canale.
[Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")]
public abstract int Send(Java.Nio.ByteBuffer? src, Java.Net.SocketAddress? target);
[<Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")>]
abstract member Send : Java.Nio.ByteBuffer * Java.Net.SocketAddress -> int
Parametri
- src
- ByteBuffer
Buffer contenente il datagramma da inviare
- target
- SocketAddress
Indirizzo a cui inviare il datagramma
Valori restituiti
Il numero di byte inviati, che corrisponderà al numero di byte rimanenti nel buffer di origine quando questo metodo è stato richiamato o, se questo canale non è bloccabile, può essere zero se il datagram non era sufficiente per il datagramma nel buffer di output sottostante.
- Attributi
Eccezioni
se il canale è già chiuso.
se il canale viene chiuso da un altro thread mentre questo metodo è in funzione.
se un altro thread interrompe il thread chiamante mentre l'operazione è in corso. Il thread chiamante avrà lo stato di interrupt impostato e il canale verrà chiuso.
si verifica un altro errore di I/O.
Commenti
Invia un datagramma tramite questo canale.
Se questo canale è in modalità non bloccaggio ed è presente spazio sufficiente nel buffer di output sottostante o se questo canale è in modalità di blocco e diventa disponibile spazio sufficiente, i byte rimanenti nel buffer specificato vengono trasmessi come singolo datagramma all'indirizzo di destinazione specificato.
Il datagrammi viene trasferito dal buffer di byte come se fosse un'operazione regolare WritableByteChannel#write(java.nio.ByteBuffer) write .
Questo metodo esegue esattamente gli stessi controlli di sicurezza del java.net.DatagramSocket#send send metodo della java.net.DatagramSocket classe . Ovvero, se il socket non è connesso a un indirizzo remoto specifico e un gestore della sicurezza è stato installato, per ogni datagrammo inviato questo metodo verifica che l'indirizzo di destinazione e il numero di porta siano consentiti dal metodo del gestore della java.lang.SecurityManager#checkConnect checkConnect sicurezza. Il sovraccarico di questo controllo di sicurezza può essere evitato connettendo prima il socket tramite il #connect connect metodo .
Questo metodo può essere richiamato in qualsiasi momento. Se un altro thread ha già avviato un'operazione di scrittura su questo canale, tuttavia, una chiamata di questo metodo verrà bloccata fino al completamento della prima operazione. Se il socket di questo canale non è associato, questo metodo causerà innanzitutto l'associazione del socket a un indirizzo assegnato automaticamente, come se richiamando il #bind bind metodo con un parametro di null.
per java.nio.channels.DatagramChannel.send(java.nio.ByteBuffer, java.net.SocketAddress).
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.