DatagramChannel.Receive(ByteBuffer) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Empfängt ein Datagramm über diesen Kanal.
[Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")]
public abstract Java.Net.SocketAddress? Receive (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")>]
abstract member Receive : Java.Nio.ByteBuffer -> Java.Net.SocketAddress
Parameter
- dst
- ByteBuffer
Der Puffer, in den das Datagramm übertragen werden soll
Gibt zurück
Die Quelladresse des Datagramms oder null
wenn sich dieser Kanal im nicht blockierenden Modus befindet und kein Datagramm sofort verfügbar war.
- 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
Empfängt ein Datagramm über diesen Kanal.
Wenn ein Datagramm sofort verfügbar ist oder sich dieser Kanal im Blockierungsmodus befindet und eines schließlich verfügbar ist, wird das Datagramm in den angegebenen Bytepuffer kopiert und seine Quelladresse zurückgegeben. Wenn sich dieser Kanal im nicht blockierenden Modus befindet und ein Datagramm nicht sofort verfügbar ist, wird diese Methode sofort zurückgegeben null
.
Das Datagramm wird in den angegebenen Bytepuffer übertragen, der an seiner aktuellen Position beginnt, als ob es sich um einen regulären ReadableByteChannel#read(java.nio.ByteBuffer) read
Vorgang handelt. Wenn im Puffer weniger Bytes verbleiben, als zum Halten des Datagramms erforderlich sind, wird der Rest des Datagramms im Hintergrund verworfen.
Diese Methode führt genau die gleichen Sicherheitsüberprüfungen wie die java.net.DatagramSocket#receive receive
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 für jedes empfangene Datagramm, ob die Adresse und die Portnummer der Quelle durch die Methode des Sicherheits-Managers java.lang.SecurityManager#checkAccept checkAccept
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 bereits ein anderer Thread einen Lesevorgang für diesen Kanal initiiert hat, wird ein Aufruf dieser Methode jedoch 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.receive(java.nio.ByteBuffer)
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.