Socket.EndReceive 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.
Beendet einen ausstehenden asynchronen Lesevorgang.
Überlädt
| Name | Beschreibung |
|---|---|
| EndReceive(IAsyncResult) |
Beendet einen ausstehenden asynchronen Lesevorgang. |
| EndReceive(IAsyncResult, SocketError) |
Beendet einen ausstehenden asynchronen Lesevorgang. |
EndReceive(IAsyncResult)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Beendet einen ausstehenden asynchronen Lesevorgang.
public:
int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer
Parameter
- asyncResult
- IAsyncResult
Ein IAsyncResult Objekt, das Zustandsinformationen und alle benutzerdefinierten Daten für diesen asynchronen Vorgang speichert.
Gibt zurück
Die Gesamtanzahl der empfangenen Bytes. Die Methode gibt null (0) nur zurück, wenn null Bytes angefordert wurden oder wenn keine weiteren Bytes verfügbar sind, da der Peersocket ein ordnungsgemäßes Herunterfahren ausgeführt hat. Wenn null Byte angefordert werden, können Empfangsvorgänge sofort abgeschlossen oder nicht abgeschlossen werden, bis mindestens ein Byte verfügbar ist (jedoch ohne Datenverbrauch).
Ausnahmen
asyncResult ist null.
asyncResult wurde nicht von einem Aufruf der BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) Methode zurückgegeben.
EndReceive(IAsyncResult) wurde zuvor für den asynchronen Lesevorgang aufgerufen.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
- oder -
.NET 7+ nur: Die Socket Datei wurde geschlossen.
.NET Framework, .NET Core und .NET 5-6: Die Socket Datei wurde geschlossen.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
EndReceive schließt den Vorgang ab, der von BeginReceive. Sie müssen den IAsyncResult vom übereinstimmenden BeginReceive Aufruf erstellten Übergeben.
Die EndReceive Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, wird das erste enqueuierte Datagram gelesen, EndReceive das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceive Methode so viele Daten wie verfügbar bis zur Anzahl der Bytes, die size Sie im Parameter der BeginReceive Methode angegeben haben. Wenn der Remotehost die Socket Verbindung mit der Shutdown Methode herunterfahren und alle verfügbaren Daten empfangen wurden, wird die EndReceive Methode sofort abgeschlossen und gibt null Bytes zurück.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen wird.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.
Weitere Informationen
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
Gilt für:
EndReceive(IAsyncResult, SocketError)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Beendet einen ausstehenden asynchronen Lesevorgang.
public:
int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer
Parameter
- asyncResult
- IAsyncResult
Ein IAsyncResult Objekt, das Zustandsinformationen und alle benutzerdefinierten Daten für diesen asynchronen Vorgang speichert.
- errorCode
- SocketError
Ein SocketError Objekt, das den Socketfehler speichert.
Gibt zurück
Die Gesamtanzahl der empfangenen Bytes. Die Methode gibt null (0) nur zurück, wenn null Bytes angefordert wurden oder wenn keine weiteren Bytes verfügbar sind, da der Peersocket ein ordnungsgemäßes Herunterfahren ausgeführt hat. Wenn null Byte angefordert werden, können Empfangsvorgänge sofort abgeschlossen oder nicht abgeschlossen werden, bis mindestens ein Byte verfügbar ist (jedoch ohne Datenverbrauch).
Ausnahmen
asyncResult ist null.
asyncResult wurde nicht von einem Aufruf der BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) Methode zurückgegeben.
EndReceive(IAsyncResult) wurde zuvor für den asynchronen Lesevorgang aufgerufen.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
- oder -
.NET 7+ nur: Die Socket Datei wurde geschlossen.
.NET Framework, .NET Core und .NET 5-6: Die Socket Datei wurde geschlossen.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
EndReceive schließt den Vorgang ab, der von BeginReceive. Sie müssen den IAsyncResult vom übereinstimmenden BeginReceive Aufruf erstellten Übergeben.
Die EndReceive Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, wird das erste enqueuierte Datagram gelesen, EndReceive das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceive Methode so viele Daten wie verfügbar bis zur Anzahl der Bytes, die size Sie im Parameter der BeginReceive Methode angegeben haben. Wenn der Remotehost die Socket Verbindung mit der Shutdown Methode herunterfahren und alle verfügbaren Daten empfangen wurden, wird die EndReceive Methode sofort abgeschlossen und gibt null Bytes zurück.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen wird.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.
Weitere Informationen
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)