Socket.BeginReceiveMessageFrom 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.
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
- 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
.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.