Socket.BeginReceive Methode

Definition

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

Überlädt

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags flags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % error, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error, 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, flags As SocketFlags, ByRef error 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.An array of type Byte that is the storage location for the received data.

offset
Int32

Die Position im buffer, an der die empfangenen Daten gespeichert werden sollen.The location in buffer to store the received data.

size
Int32

Die Anzahl der zu empfangenden Bytes.The number of bytes to receive.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.A bitwise combination of the SocketFlags values.

errorCode
SocketError

Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.A SocketError object that stores the socket error.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält.A user-defined object that contains information about the receive operation. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.An IAsyncResult that references the asynchronous read.

Ausnahmen

buffer ist null.buffer is null.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Socket wurde geschlossen.Socket has been closed.

offset ist kleiner als 0.offset is less than 0.

- oder --or- offset ist größer als die Länge von buffer.offset is greater than the length of buffer.

- oder --or- size ist kleiner als 0.size is less than 0.

- oder --or- size ist größer als die Länge von buffer minus dem Wert des offset-Parameters.size is greater than the length of buffer minus the value of the offset parameter.

Hinweise

Der asynchrone BeginReceive Vorgang muss abgeschlossen werden, indem die EndReceive-Methode aufgerufen wird.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. In der Regel wird die-Methode vom callback-Delegaten aufgerufen.Typically, the method is invoked by the callback delegate.

Diese Methode wird nicht blockiert, bis der Vorgang beendet ist.This method does not block until the operation is complete. Um zu blockieren, bis der Vorgang beendet ist, verwenden Sie eine der Receive-Methoden Überladungen.To block until the operation is complete, use one of the Receive method overloads.

Um einen ausstehenden BeginReceiveabzubrechen, rufen Sie die Close-Methode auf.To cancel a pending BeginReceive, call the Close method.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Alle e/a-Vorgänge, die von einem bestimmten Thread initiiert werden, werden beim Beenden des Threads abgebrochen.All I/O initiated by a given thread is canceled when that thread exits. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.A pending asynchronous operation can fail if the thread exits before the operation completes.

Hinweis

state ist eine Instanziierung einer benutzerdefinierten Klasse.state is an instantiation of a user-defined class.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweis

Der Ausführungs Kontext (der Sicherheitskontext, der Benutzer, dessen Identität angenommen wurde, und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket Instanz und eines bestimmten Rückrufs) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Siehe auch

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

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socket_flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, 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, socket_flags 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.An array of type Byte that is the storage location for the received data.

offset
Int32

Die nullbasierte Position im buffer-Parameter, an der die empfangenen Daten gespeichert werden.The zero-based position in the buffer parameter at which to store the received data.

size
Int32

Die Anzahl der zu empfangenden Bytes.The number of bytes to receive.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält.A user-defined object that contains information about the receive operation. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.An IAsyncResult that references the asynchronous read.

Ausnahmen

buffer ist null.buffer is null.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Socket wurde geschlossen.Socket has been closed.

offset ist kleiner als 0.offset is less than 0.

- oder --or- offset ist größer als die Länge von buffer.offset is greater than the length of buffer.

- oder --or- size ist kleiner als 0.size is less than 0.

- oder --or- size ist größer als die Länge von buffer minus dem Wert des offset-Parameters.size is greater than the length of buffer minus the value of the offset parameter.

Beispiele

Das folgende Codebeispiel beginnt mit dem asynchronen empfangen von Daten aus einem verbundenen Socket.The following code example begins to asynchronously receive data from a connected Socket.

public ref class StateObject
{
public:
   literal int BUFFER_SIZE = 1024;
   Socket^ workSocket;
   array<Byte>^ buffer;
   StringBuilder^ sb;
   StateObject() : workSocket( nullptr )
   {
      buffer = gcnew array<Byte>(BUFFER_SIZE);
      sb = gcnew StringBuilder;
   }
};
public class StateObject{
     public Socket workSocket = null;
     public const int BUFFER_SIZE = 1024;
     public byte[] buffer = new byte[BUFFER_SIZE];
     public StringBuilder sb = new StringBuilder();
}
Public Class StateObject
   Public workSocket As Socket = Nothing
   Public const BUFFER_SIZE As Integer = 1024
   Public buffer(BUFFER_SIZE) As byte
   Public sb As New StringBuilder()
End Class
static void Listen_Callback( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = safe_cast<Socket^>(ar->AsyncState);
   Socket^ s2 = s->EndAccept( ar );
   StateObject^ so2 = gcnew StateObject;
   so2->workSocket = s2;
   s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
      gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 );
}
public static void Listen_Callback(IAsyncResult ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
                           new AsyncCallback(Async_Send_Receive.Read_Callback), so2);	
}
Public Shared Sub Listen_Callback(ar As IAsyncResult)
   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   Dim s2 As Socket = s.EndAccept(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s2
   s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2)
End Sub

static void Read_Callback( IAsyncResult^ ar )
{
   StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
   Socket^ s = so->workSocket;

   int read = s->EndReceive( ar );

   if ( read > 0 )
   {
      so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) );
      s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
         gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so );
   }
   else
   {
      if ( so->sb->Length > 1 )
      {
         //All of the data has been read, so displays it to the console
         String^ strContent = so->sb->ToString();
         Console::WriteLine( String::Format( "Read {0} byte from socket" +
            " data = {1} ", strContent->Length, strContent ) );
      }
      s->Close();
   }
}
public static void Read_Callback(IAsyncResult ar){
    StateObject so = (StateObject) ar.AsyncState;
    Socket s = so.workSocket;

    int read = s.EndReceive(ar);

    if (read > 0) {
            so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
            s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, 
                                     new AsyncCallback(Async_Send_Receive.Read_Callback), so);
    }
    else{
         if (so.sb.Length > 1) {
              //All of the data has been read, so displays it to the console
              string strContent;
              strContent = so.sb.ToString();
              Console.WriteLine(String.Format("Read {0} byte from socket" + 
                               "data = {1} ", strContent.Length, strContent));
         }
         s.Close();
    }
}
Public Shared Sub Read_Callback(ar As IAsyncResult)
   Dim so As StateObject = CType(ar.AsyncState, StateObject)
   Dim s As Socket = so.workSocket
   
   Dim read As Integer = s.EndReceive(ar)
   
   If read > 0 Then
      so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read))
      s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so)
   Else
      If so.sb.Length > 1 Then
         'All the data has been read, so displays it to the console
         Dim strContent As String
         strContent = so.sb.ToString()
         Console.WriteLine([String].Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent))
      End If
      s.Close()
   End If
End Sub

Hinweise

Der asynchrone BeginReceive Vorgang muss abgeschlossen werden, indem die EndReceive-Methode aufgerufen wird.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. In der Regel wird die-Methode vom callback-Delegaten aufgerufen.Typically, the method is invoked by the callback delegate.

Diese Methode wird nicht blockiert, bis der Vorgang beendet ist.This method does not block until the operation is complete. Um zu blockieren, bis der Vorgang beendet ist, verwenden Sie eine der Receive-Methoden Überladungen.To block until the operation is complete, use one of the Receive method overloads.

Um einen ausstehenden BeginReceiveabzubrechen, rufen Sie die Close-Methode auf.To cancel a pending BeginReceive, call the Close method.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Alle e/a-Vorgänge, die von einem bestimmten Thread initiiert werden, werden beim Beenden des Threads abgebrochen.All I/O initiated by a given thread is canceled when that thread exits. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.A pending asynchronous operation can fail if the thread exits before the operation completes.

Hinweis

state ist eine Instanziierung einer benutzerdefinierten Klasse.state is an instantiation of a user-defined class.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweis

Der Ausführungs Kontext (der Sicherheitskontext, der Benutzer, dessen Identität angenommen wurde, und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket Instanz und eines bestimmten Rückrufs) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Siehe auch

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

Wichtig

Diese API ist nicht CLS-kompatibel.

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
[System.CLSCompliant(false)]
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

Parameter

buffers
IList<ArraySegment<Byte>>

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält.A user-defined object that contains information about the receive operation. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.An IAsyncResult that references the asynchronous read.

Attribute

Ausnahmen

buffer ist null.buffer is null.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Socket wurde geschlossen.Socket has been closed.

Hinweise

Der asynchrone BeginReceive Vorgang muss abgeschlossen werden, indem die EndReceive-Methode aufgerufen wird.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. In der Regel wird die-Methode vom callback-Delegaten aufgerufen.Typically, the method is invoked by the callback delegate.

Diese Methode wird nicht blockiert, bis der Vorgang beendet ist.This method does not block until the operation is complete. Um zu blockieren, bis der Vorgang beendet ist, verwenden Sie eine der Receive-Methoden Überladungen.To block until the operation is complete, use one of the Receive method overloads.

Um einen ausstehenden BeginReceiveabzubrechen, rufen Sie die Close-Methode auf.To cancel a pending BeginReceive, call the Close method.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Alle e/a-Vorgänge, die von einem bestimmten Thread initiiert werden, werden beim Beenden des Threads abgebrochen.All I/O initiated by a given thread is canceled when that thread exits. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.A pending asynchronous operation can fail if the thread exits before the operation completes.

Hinweis

state ist eine Instanziierung einer benutzerdefinierten Klasse.state is an instantiation of a user-defined class.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweis

Der Ausführungs Kontext (der Sicherheitskontext, der Benutzer, dessen Identität angenommen wurde, und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket Instanz und eines bestimmten Rückrufs) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Siehe auch

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

Wichtig

Diese API ist nicht CLS-kompatibel.

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.Begins to asynchronously receive data from a connected 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);
[System.CLSCompliant(false)]
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

Parameter

buffers
IList<ArraySegment<Byte>>

Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.A bitwise combination of the SocketFlags values.

errorCode
SocketError

Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.A SocketError object that stores the socket error.

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Empfangsvorgang enthält.A user-defined object that contains information about the receive operation. Dieses Objekt wird bei Abschluss des Vorgangs an den EndReceive(IAsyncResult)-Delegaten übergeben.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Gibt zurück

Ein IAsyncResult, das auf den asynchronen Lesevorgang verweist.An IAsyncResult that references the asynchronous read.

Attribute

Ausnahmen

buffer ist null.buffer is null.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Socket wurde geschlossen.Socket has been closed.

Hinweise

Der asynchrone BeginReceive Vorgang muss abgeschlossen werden, indem die EndReceive-Methode aufgerufen wird.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. In der Regel wird die-Methode vom callback-Delegaten aufgerufen.Typically, the method is invoked by the callback delegate.

Diese Methode wird nicht blockiert, bis der Vorgang beendet ist.This method does not block until the operation is complete. Um zu blockieren, bis der Vorgang beendet ist, verwenden Sie eine der Receive-Methoden Überladungen.To block until the operation is complete, use one of the Receive method overloads.

Um einen ausstehenden BeginReceiveabzubrechen, rufen Sie die Close-Methode auf.To cancel a pending BeginReceive, call the Close method.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Alle e/a-Vorgänge, die von einem bestimmten Thread initiiert werden, werden beim Beenden des Threads abgebrochen.All I/O initiated by a given thread is canceled when that thread exits. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.A pending asynchronous operation can fail if the thread exits before the operation completes.

Hinweis

state ist eine Instanziierung einer benutzerdefinierten Klasse.state is an instantiation of a user-defined class.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweis

Der Ausführungs Kontext (der Sicherheitskontext, der Benutzer, dessen Identität angenommen wurde, und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket Instanz und eines bestimmten Rückrufs) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Siehe auch

Gilt für: