Sprache

DatagramChannel.Send(ByteBuffer, SocketAddress) Methode

Definition

Sendet ein Datagramm über diesen Kanal.

[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

Parameter

src
ByteBuffer

Der Puffer, der das zu sendende Datagramm enthält

target
SocketAddress

Die Adresse, an die das Datagramm gesendet werden soll

Gibt zurück

Die Anzahl der gesendeten Bytes, die entweder die Anzahl der Bytes sein, die im Quellpuffer verbleiben, wenn diese Methode aufgerufen wurde oder wenn dieser Kanal nicht blockiert wird, kann null sein, wenn im zugrunde liegenden Ausgabepuffer nicht genügend Speicherplatz für das Datagramm vorhanden ist.

Attribute

Ausnahmen

wenn der Kanal bereits geschlossen ist.

wenn der Kanal von einem anderen Thread geschlossen wird, während diese Methode ausgeführt wird.

wenn ein anderer Thread den aufrufenden Thread unterbricht, während der Vorgang ausgeführt wird. Der aufrufende Thread hat den Unterbrechungszustand festgelegt, und der Kanal wird geschlossen.

ein anderer E/A-Fehler tritt auf.

Hinweise

Sendet ein Datagramm über diesen Kanal.

Wenn sich dieser Kanal im nicht blockierenden Modus befindet und genügend Platz im zugrunde liegenden Ausgabepuffer vorhanden ist oder sich dieser Kanal im Blockierungsmodus befindet und genügend Raum verfügbar ist, werden die verbleibenden Bytes im angegebenen Puffer als einzelnes Datagramm an die angegebene Zieladresse übertragen.

Das Datagramm wird aus dem Bytepuffer übertragen, als ob es sich um einen regulären WritableByteChannel#write(java.nio.ByteBuffer) write Vorgang handelt.

Diese Methode führt genau die gleichen Sicherheitsüberprüfungen wie die java.net.DatagramSocket#send send Methode der java.net.DatagramSocket Klasse aus. Das heißt, wenn der Socket nicht mit einer bestimmten Remoteadresse verbunden ist und ein Sicherheits-Manager installiert wurde, überprüft diese Methode, ob die Zieladresse und die Portnummer durch die Methode des java.lang.SecurityManager#checkConnect checkConnect Sicherheits-Managers zulässig sind. Der Aufwand dieser Sicherheitsüberprüfung kann vermieden werden, indem zuerst der Socket über die #connect connect Methode verbunden wird.

Diese Methode kann jederzeit aufgerufen werden. Wenn jedoch bereits ein anderer Thread einen Schreibvorgang für diesen Kanal initiiert hat, wird ein Aufruf dieser Methode blockiert, bis der erste Vorgang abgeschlossen ist. Wenn der Socket dieses Kanals nicht gebunden ist, bewirkt diese Methode zunächst, dass der Socket an eine automatisch zugewiesene Adresse gebunden wird, als ob die #bind bind Methode mit einem Parameter von null.

Java Dokumentation für java.nio.channels.DatagramChannel.send(java.nio.ByteBuffer, java.net.SocketAddress).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: