Socket.EndReceive Methode

Definition

Beendet einen ausstehenden asynchronen Lesevorgang.

Überlädt

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

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, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.

Gibt zurück

Die Anzahl der empfangenen Bytes.

Ausnahmen

asyncResult ist null.

asyncResult wurde nicht durch einen Aufruf der BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)-Methode zurückgegeben.

EndReceive(IAsyncResult) wurde bereits für den asynchronen Lesevorgang aufgerufen.

Fehler beim Versuch, auf den Socket zuzugreifen.

- oder -

Nur .NET 7 und höher: Die Socket wurde geschlossen.

nur .NET Framework, .NET Core und .NET 5-6: Die 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.

EndReceive schließt den von gestarteten Vorgang ab BeginReceive. Sie müssen das übergeben, das IAsyncResult vom übereinstimmenden BeginReceive Aufruf erstellt wurde.

Die EndReceive -Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, EndReceive liest das erste in die Warteschlange eingereihte Datagramm, das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceive Methode bis zu der Anzahl von Bytes, die Sie im size Parameter der BeginReceive -Methode angegeben haben, so viele Daten, wie verfügbar sind. Wenn der Remotehost die Verbindung mit der SocketShutdown -Methode beendet und alle verfügbaren Daten empfangen wurden, wird die EndReceive Methode sofort abgeschlossen und gibt null Bytes zurück.

Hinweis

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

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

Hinweis

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

Weitere Informationen

Gilt für:

EndReceive(IAsyncResult, SocketError)

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, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.

errorCode
SocketError

Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.

Gibt zurück

Die Anzahl der empfangenen Bytes.

Ausnahmen

asyncResult ist null.

asyncResult wurde nicht durch einen Aufruf der BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)-Methode zurückgegeben.

EndReceive(IAsyncResult) wurde bereits für den asynchronen Lesevorgang aufgerufen.

Fehler beim Versuch, auf den Socket zuzugreifen.

- oder -

Nur .NET 7 und höher: Die Socket wurde geschlossen.

nur .NET Framework, .NET Core und .NET 5-6: Die 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.

EndReceive schließt den von gestarteten Vorgang ab BeginReceive. Sie müssen das übergeben, das IAsyncResult vom übereinstimmenden BeginReceive Aufruf erstellt wurde.

Die EndReceive -Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, EndReceive liest das erste in die Warteschlange eingereihte Datagramm, das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceive Methode bis zu der Anzahl von Bytes, die Sie im size Parameter der BeginReceive -Methode angegeben haben, so viele Daten, wie verfügbar sind. Wenn der Remotehost die Verbindung mit der SocketShutdown -Methode beendet und alle verfügbaren Daten empfangen wurden, wird die EndReceive Methode sofort abgeschlossen und gibt null Bytes zurück.

Hinweis

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

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

Hinweis

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

Weitere Informationen

Gilt für: