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.
- 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: 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.