Freigeben über


Socket.EndReceive Methode

Definition

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

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

Gilt für: