Socket.BeginReceiveMessageFrom Methode

Definition

Beginnt unter Verwendung der angegebenen SocketFlags-Klassen den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen.

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.

offset
Int32

Die nullbasierte Position im buffer-Parameter, an der die Daten gespeichert werden.

size
Int32

Die Anzahl der zu empfangenden Bytes.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

remoteEP
EndPoint

Ein EndPoint, der die Datenquelle darstellt.

callback
AsyncCallback

Der AsyncCallback-Delegat.

state
Object

Ein Objekt mit Zustandsinformationen für diese Anforderung.

Gibt zurück

IAsyncResult

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null.

- oder -

remoteEP ist null.

.NET Framework und .NET 5 und früher: Ein Fehler beim Versuch, auf den Socket zuzugreifen.

offset ist kleiner als 0.

- oder -

offset ist größer als die Länge von buffer.

- oder -

size ist kleiner als 0.

  • oder -

size ist größer als die Länge von buffer minus dem Wert des offset -Parameters.

Der Socket wurde geschlossen.

Hinweise

Der asynchrone Empfangsvorgang muss durch Aufrufen der EndReceiveMessageFrom Methode abgeschlossen werden. In der Regel wird die Methode von der asyncCallback Stellvertretung aufgerufen.

Diese Methode blockiert erst, wenn der Vorgang abgeschlossen ist. Um zu blockieren, bis der Vorgang abgeschlossen ist, verwenden Sie die ReceiveMessageFrom Methode.

Rufen Sie die Close Methode auf, um einen ausstehenden BeginReceiveMessageFromVorgang abzubrechen.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter asynchrone Aufrufen synchroner Methoden

Diese Methode liest Daten in den buffer Parameter und erfasst den Remotehostendpunkt, von dem die Daten gesendet werden, sowie Informationen über das empfangene Paket. Informationen zum Abrufen dieses Endpunkts finden Sie unter EndReceiveFrom. Diese Methode ist am nützlichsten, wenn Sie verbindungslose Datagramme von einem unbekannten Host oder mehreren Hosts asynchron empfangen möchten.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code erhalten haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine detaillierte Beschreibung des Fehlers.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter "Netzwerkablaufverfolgung" im .NET Framework.

Hinweis

Der Ausführungskontext (der Sicherheitskontext, der imitierte Benutzer und der Aufrufkontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, Socket einer bestimmten Instanz und einem bestimmten Rückruf) wird die nachfolgende Verwendung dieses Kontexts eine Leistungsverbesserung sehen.

Gilt für: