Freigeben über


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 Verweis auf einen EndPoint vom gleichen Typ wie der Endpunkt des Remotehosts, der beim synchronen Empfang aktualisiert werden soll.

callback
AsyncCallback

Der AsyncCallback -Delegat.

state
Object

Ein Objekt mit Zustandsinformationen für diese Anforderung.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null.

- oder -

remoteEP ist null.

.NET Framework und .NET 5 und früher: Fehler beim Zugriff auf den Socket.

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

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die Neuentwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

Sie können einen Rückruf übergeben, der implementiert, BeginReceiveMessageFrom um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginReceiveMessageFromvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously -Eigenschaft für den zurückgegebenen IAsyncResult auf true festgelegt, um anzugeben, dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState -Eigenschaft von IAsyncResult , um das an die -Methode übergebene Zustandsobjekt BeginReceiveMessageFrom abzurufen.

Der asynchrone BeginReceiveMessageFrom Vorgang muss durch Aufrufen der EndReceiveMessageFrom -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndReceiveMessageFrom blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Um einen ausstehenden BeginReceiveMessageFromabzubrechen, rufen Sie die Close -Methode auf.

Diese Methode liest Daten in den buffer Parameter und erfasst den Remotehostendpunkt, von dem die Daten gesendet werden, sowie Informationen zum empfangenen Paket. Informationen zum Abrufen dieses Endpunkts finden Sie unter EndReceiveMessageFrom. Diese Methode ist besonders nützlich, wenn Sie beabsichtigen, verbindungslose Datagramme asynchron von einem unbekannten Host oder mehreren Hosts zu empfangen.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.

Hinweis

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

Hinweis

Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket instance und einem bestimmten Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.

Gilt für: