Freigeben über


Socket.BeginReceive Methode

Definition

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

Überlädt

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.

offset
Int32

Die Position im buffer, an der die empfangenen Daten gespeichert werden sollen.

size
Int32

Die Anzahl der zu empfangenden Bytes.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

errorCode
SocketError

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

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

Socket wurde geschlossen.

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.

Hinweise

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginReceive um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginReceivevon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene 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 BeginReceive abzurufen.

Der asynchrone BeginReceive Vorgang muss durch Aufrufen der EndReceive -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndReceive blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Schließen Sie die Socket , um einen ausstehenden BeginReceiveabzubrechen. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginReceive Methode bereitgestellte Rückruf aufgerufen. Ein späterer Aufruf der EndReceive -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

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

state ist eine Instanziierung einer benutzerdefinierten Klasse.

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 der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.

Weitere Informationen

Gilt für:

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.

offset
Int32

Die nullbasierte Position im buffer-Parameter, an der die empfangenen Daten gespeichert werden.

size
Int32

Die Anzahl der zu empfangenden Bytes.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

Socket wurde geschlossen.

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.

Hinweise

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginReceive um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginReceivevon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene 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 BeginReceive abzurufen.

Der asynchrone BeginReceive Vorgang muss durch Aufrufen der EndReceive -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndReceive blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Schließen Sie die Socket , um einen ausstehenden BeginReceiveabzubrechen. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginReceive Methode bereitgestellte Rückruf aufgerufen. Ein späterer Aufruf der EndReceive -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

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

state ist eine Instanziierung einer benutzerdefinierten Klasse.

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 der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.

Weitere Informationen

Gilt für:

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffers
IList<ArraySegment<Byte>>

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

Socket wurde geschlossen.

Hinweise

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginReceive um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginReceivevon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene 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 BeginReceive abzurufen.

Der asynchrone BeginReceive Vorgang muss durch Aufrufen der EndReceive -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndReceive blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Schließen Sie die Socket , um einen ausstehenden BeginReceiveabzubrechen. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginReceive Methode bereitgestellte Rückruf aufgerufen. Ein späterer Aufruf der EndReceive -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

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

state ist eine Instanziierung einer benutzerdefinierten Klasse.

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 der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.

Weitere Informationen

Gilt für:

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffers
IList<ArraySegment<Byte>>

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

errorCode
SocketError

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

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.

Ausnahmen

buffer ist null

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

Socket wurde geschlossen.

Hinweise

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginReceive um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginReceivevon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene 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 BeginReceive abzurufen.

Der asynchrone BeginReceive Vorgang muss durch Aufrufen der EndReceive -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndReceive blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Schließen Sie die Socket , um einen ausstehenden BeginReceiveabzubrechen. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginReceive Methode bereitgestellte Rückruf aufgerufen. Ein späterer Aufruf der EndReceive -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

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

state ist eine Instanziierung einer benutzerdefinierten Klasse.

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 der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.

Weitere Informationen

Gilt für: