Socket.EndAccept Methode

Definition

Nimmt einen eingehenden Verbindungsversuch asynchron an.Asynchronously accepts an incoming connection attempt.

Überlädt

EndAccept(Byte[], IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Diese Methode gibt einen Puffer zurück, der die ersten übertragenen Daten enthält.This method returns a buffer that contains the initial data transferred.

EndAccept(IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen Socket zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

EndAccept(Byte[], Int32, IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Diese Methode gibt einen Puffer zurück, der die ersten Daten und die Anzahl der übertragenen Bytes enthält.This method returns a buffer that contains the initial data and the number of bytes transferred.

EndAccept(Byte[], IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Diese Methode gibt einen Puffer zurück, der die ersten übertragenen Daten enthält.This method returns a buffer that contains the initial data transferred.

public:
 System::Net::Sockets::Socket ^ EndAccept([Runtime::InteropServices::Out] cli::array <System::Byte> ^ % buffer, IAsyncResult ^ asyncResult);
public System.Net.Sockets.Socket EndAccept (out byte[] buffer, IAsyncResult asyncResult);
member this.EndAccept : Byte[] * IAsyncResult -> System.Net.Sockets.Socket
Public Function EndAccept (ByRef buffer As Byte(), asyncResult As IAsyncResult) As Socket

Parameter

buffer
Byte[]

Ein Array vom Typ Byte, das die übertragenen Bytes enthält.An array of type Byte that contains the bytes transferred.

asyncResult
IAsyncResult

Ein IAsyncResult-Objekt, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.An IAsyncResult object that stores state information for this asynchronous operation as well as any user defined data.

Gibt zurück

Ein Socket-Objekt zum Behandeln der Kommunikation mit dem Remotehost.A Socket object to handle communication with the remote host.

Ausnahmen

Für diese Methode ist Windows NT erforderlich.Windows NT is required for this method.

Das Socket-Objekt wurde geschlossen.The Socket object has been closed.

asyncResult ist leer.asyncResult is empty.

asyncResult wurde nicht durch einen Aufruf von BeginAccept(AsyncCallback, Object) erstellt.asyncResult was not created by a call to BeginAccept(AsyncCallback, Object).

Die EndAccept(IAsyncResult)-Methode wurde bereits zuvor aufgerufen.EndAccept(IAsyncResult) method was previously called.

Fehler beim Zugriff auf den Socket.An error occurred when attempting to access the Socket

Beispiele

Im folgenden Codebeispiel wird BeginAccept verwendet, um einen Socket zu erstellen und zu verbinden und die ersten 10 Bytes der Daten zu akzeptieren.The following code example uses BeginAccept to create and connect a socket and accept the initial 10 bytes of data. Der Rückruf Delegat ruft EndAccept auf, um die asynchrone Anforderung zu beenden.The callback delegate calls EndAccept to end the asynchronous request. Die Anzahl der übertragenen Bytes, und die Daten werden in den buffer-und bytesTransferred Parametern dieser Methode zurückgegeben und in der Konsole angezeigt.The number of bytes transmitted and the data are returned in the buffer and bytesTransferred parameters of this method and are displayed on the console.

   // This server waits for a connection and then uses asynchronous operations to
   // accept the connection with initial data sent from the client.
   // Establish the local endpoint for the socket.
   IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() );
   IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ];
   IPEndPoint^ localEndPoint = gcnew IPEndPoint( ipAddress,11000 );
   
   // Create a TCP/IP socket.
   Socket^ listener = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   
   // Bind the socket to the local endpoint, and listen for incoming connections.
   listener->Bind( localEndPoint );
   listener->Listen( 100 );
   for ( ; ;  )
   {
      
      // Set the event to nonsignaled state.
      allDone->Reset();
      
      // Start an asynchronous socket to listen for connections and receive data from the client.
      Console::WriteLine( "Waiting for a connection..." );
      
      // Accept the connection and receive the first 10 bytes of data.
      int receivedDataSize = 10;
      listener->BeginAccept( receivedDataSize, gcnew AsyncCallback( AcceptReceiveCallback ), listener );
      
      // Wait until a connection is made and processed before continuing.
      allDone->WaitOne();

   }
}

static void AcceptReceiveCallback( IAsyncResult^ ar )
{
   // Get the socket that handles the client request.
   Socket^ listener = dynamic_cast<Socket^>(ar->AsyncState);

   // End the operation and display the received data on the console.
   array<Byte>^Buffer;
   int bytesTransferred;
   Socket^ handler = listener->EndAccept( Buffer, bytesTransferred, ar );
   String^ stringTransferred = Encoding::ASCII->GetString( Buffer, 0, bytesTransferred );
   Console::WriteLine( stringTransferred );
   Console::WriteLine( "Size of data transferred is {0}", bytesTransferred );

   // Create the state object for the asynchronous receive.
   StateObject^ state = gcnew StateObject;
   state->workSocket = handler;
   handler->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast<SocketFlags>(0), gcnew AsyncCallback( ReadCallback ), state );
}


       // This server waits for a connection and then uses asynchronous operations to
       // accept the connection with initial data sent from the client.
            
       
       // Establish the local endpoint for the socket.
   
       IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
       IPAddress ipAddress = ipHostInfo.AddressList[0];
       IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
      
       // Create a TCP/IP socket.
       Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

       // Bind the socket to the local endpoint, and listen for incoming connections.
       listener.Bind(localEndPoint);
       listener.Listen(100);

       while (true) 
       {
           // Set the event to nonsignaled state.
           allDone.Reset();

           // Start an asynchronous socket to listen for connections and receive data from the client.
           Console.WriteLine("Waiting for a connection...");

           // Accept the connection and receive the first 10 bytes of data.
           int receivedDataSize = 10;
           listener.BeginAccept(receivedDataSize, new AsyncCallback(AcceptReceiveCallback), listener);
            
           // Wait until a connection is made and processed before continuing.
           allDone.WaitOne();
       }
 
   }


   public static void AcceptReceiveCallback(IAsyncResult ar) 
   {
       // Get the socket that handles the client request.
       Socket listener = (Socket) ar.AsyncState;
       
       // End the operation and display the received data on the console.
       byte[] Buffer;
       int bytesTransferred;
       Socket handler = listener.EndAccept(out Buffer, out bytesTransferred, ar);
       string stringTransferred = Encoding.ASCII.GetString(Buffer, 0, bytesTransferred);

       Console.WriteLine(stringTransferred);
       Console.WriteLine("Size of data transferred is {0}", bytesTransferred);
             
       // Create the state object for the asynchronous receive.
       StateObject state = new StateObject();
       state.workSocket = handler;
       handler.BeginReceive( state.buffer, 0, StateObject.BufferSize, 0,
       new AsyncCallback(ReadCallback), state);
   }

Hinweise

EndAccept schließt einen aufzurufenden BeginAcceptab.EndAccept completes a call to BeginAccept. Vor dem Aufrufen von BeginAcceptmüssen Sie eine Rückruf Methode erstellen, die vom AsyncCallback Delegaten aufgerufen wird.Before calling BeginAccept, you need to create a callback method that is invoked by the AsyncCallback delegate. Diese Rückruf Methode wird in einem separaten Thread ausgeführt und vom System aufgerufen, nachdem die BeginAccept-Methode zurückgegeben wurde.This callback method executes in a separate thread, and is called by the system after the BeginAccept method returns.

Rufen Sie innerhalb der Rückruf Methode die AsyncState-Methode des asyncResult-Parameters auf, um die Socket zu erhalten, für die der Verbindungsversuch durchgeführt wird.Within the callback method, call the AsyncState method of the asyncResult parameter to obtain the Socket on which the connection attempt is being made. Nachdem Sie die Socketerhalten haben, können Sie die EndAccept-Methode aufrufen, um den Verbindungsversuch erfolgreich abzuschließen.After obtaining the Socket, you can call the EndAccept method to successfully complete the connection attempt. Der buffer-Parameter dieser Überladung enthält die Daten, die im BeginAccept aufgerufen wurden, und der bytesTransferred-Parameter enthält die Anzahl der Bytes, die im-Befehl übertragen wurden.The buffer parameter of this overload contains the data that was received in the call to BeginAccept and the bytesTransferred parameter contains the number of bytes that were transferred in the call.

Die EndAccept-Methode blockiert, bis eine Verbindung in der Warteschlange für eingehende Verbindungen aussteht.The EndAccept method blocks until a connection is pending in the incoming connection queue. Die EndAccept-Methode akzeptiert die eingehende Verbindung und gibt eine neue Socket zurück, die zum Senden und empfangen von Daten vom Remote Host verwendet werden kann.The EndAccept method accepts the incoming connection and returns a new Socket that can be used to send data to and receive data from the remote host.

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

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.

EndAccept(IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen Socket zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

public:
 System::Net::Sockets::Socket ^ EndAccept(IAsyncResult ^ result);
public System.Net.Sockets.Socket EndAccept (IAsyncResult result);
member this.EndAccept : IAsyncResult -> System.Net.Sockets.Socket
Public Function EndAccept (result As IAsyncResult) As Socket

Parameter

asyncResult
IAsyncResult

Ein IAsyncResult, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.An IAsyncResult that stores state information for this asynchronous operation as well as any user defined data.

Gibt zurück

Ein Socket zum Behandeln der Kommunikation mit dem Remotehost.A Socket to handle communication with the remote host.

Ausnahmen

asyncResult ist null.asyncResult is null.

asyncResult wurde nicht durch einen Aufruf von BeginAccept(AsyncCallback, Object) erstellt.asyncResult was not created by a call to BeginAccept(AsyncCallback, Object).

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket. Weitere Informationen finden Sie im Abschnitt Hinweise.See the Remarks section for more information.

Der Socket wurde geschlossen.The Socket has been closed.

Die EndAccept(IAsyncResult)-Methode wurde bereits zuvor aufgerufen.EndAccept(IAsyncResult) method was previously called.

Für diese Methode ist Windows NT erforderlich.Windows NT is required for this method.

Beispiele

Im folgenden Codebeispiel wird eine asynchrone Anforderung beendet und eine neue Socket erstellt, um eine eingehende Verbindungsanforderung zu akzeptieren.The following code example ends an asynchronous request and creates a new Socket to accept an incoming connection request. Ein umfassendes Beispiel, in dem die asynchrone Kommunikation mit Sockets veranschaulicht wird, finden Sie unter Beispiele für Socket-Code.For a complete example that demonstrates asynchronous communications with sockets, see Socket Code Examples.

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

Hinweise

EndAccept schließt einen aufzurufenden BeginAcceptab.EndAccept completes a call to BeginAccept. Vor dem Aufrufen von BeginAcceptmüssen Sie eine Rückruf Methode erstellen, die den AsyncCallback Delegaten implementiert.Before calling BeginAccept, you need to create a callback method that implements the AsyncCallback delegate. Diese Rückruf Methode wird in einem separaten Thread ausgeführt und vom System aufgerufen, nachdem die BeginAccept-Methode zurückgegeben wurde.This callback method executes in a separate thread, and is called by the system after the BeginAccept method returns. Er muss den asyncResult-Parameter akzeptieren, der von der BeginAccept-Methode zurückgegeben wird.It must accept the asyncResult parameter returned from the BeginAccept method.

Rufen Sie innerhalb der Rückruf Methode die AsyncState-Methode des asyncResult-Parameters auf, um die Socket zu erhalten, für die der Verbindungsversuch durchgeführt wird.Within the callback method, call the AsyncState method of the asyncResult parameter to obtain the Socket on which the connection attempt is being made. Nachdem Sie die Socketerhalten haben, können Sie die EndAccept-Methode aufrufen, um den Verbindungsversuch erfolgreich abzuschließen.After obtaining the Socket, you can call the EndAccept method to successfully complete the connection attempt.

Die EndAccept-Methode blockiert, bis eine Verbindung in der Warteschlange für eingehende Verbindungen aussteht.The EndAccept method blocks until a connection is pending in the incoming connection queue. Die EndAccept-Methode akzeptiert die eingehende Verbindung und gibt eine neue Socket zurück, die zum Senden und empfangen von Daten vom Remote Host verwendet werden kann.The EndAccept method accepts the incoming connection and returns a new Socket that can be used to send data to and receive data from the remote host.

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

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.

Siehe auch

EndAccept(Byte[], Int32, IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Diese Methode gibt einen Puffer zurück, der die ersten Daten und die Anzahl der übertragenen Bytes enthält.This method returns a buffer that contains the initial data and the number of bytes transferred.

public:
 System::Net::Sockets::Socket ^ EndAccept([Runtime::InteropServices::Out] cli::array <System::Byte> ^ % buffer, [Runtime::InteropServices::Out] int % bytesTransferred, IAsyncResult ^ asyncResult);
public System.Net.Sockets.Socket EndAccept (out byte[] buffer, out int bytesTransferred, IAsyncResult asyncResult);
member this.EndAccept : Byte[] * int * IAsyncResult -> System.Net.Sockets.Socket
Public Function EndAccept (ByRef buffer As Byte(), ByRef bytesTransferred As Integer, asyncResult As IAsyncResult) As Socket

Parameter

buffer
Byte[]

Ein Array vom Typ Byte, das die übertragenen Bytes enthält.An array of type Byte that contains the bytes transferred.

bytesTransferred
Int32

Die Anzahl der übertragenen Bytes.The number of bytes transferred.

asyncResult
IAsyncResult

Ein IAsyncResult-Objekt, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.An IAsyncResult object that stores state information for this asynchronous operation as well as any user defined data.

Gibt zurück

Ein Socket-Objekt zum Behandeln der Kommunikation mit dem Remotehost.A Socket object to handle communication with the remote host.

Ausnahmen

Für diese Methode ist Windows NT erforderlich.Windows NT is required for this method.

Das Socket-Objekt wurde geschlossen.The Socket object has been closed.

asyncResult ist leer.asyncResult is empty.

asyncResult wurde nicht durch einen Aufruf von BeginAccept(AsyncCallback, Object) erstellt.asyncResult was not created by a call to BeginAccept(AsyncCallback, Object).

Die EndAccept(IAsyncResult)-Methode wurde bereits zuvor aufgerufen.EndAccept(IAsyncResult) method was previously called.

Fehler beim Zugriff auf den Socket.An error occurred when attempting to access the Socket.

Beispiele

Im folgenden Codebeispiel wird BeginAccept verwendet, um einen Socket zu erstellen und zu verbinden und die ersten 10 Bytes der Daten zu akzeptieren.The following code example uses BeginAccept to create and connect a socket and accept the initial 10 bytes of data. Der Rückruf Delegat ruft EndAccept auf, um die asynchrone Anforderung zu beenden.The callback delegate calls EndAccept to end the asynchronous request. Die Anzahl der übertragenen Bytes, und die Daten werden in den buffer-und bytesTransferred Parametern dieser Methode zurückgegeben und in der Konsole angezeigt.The number of bytes transmitted and the data are returned in the buffer and bytesTransferred parameters of this method and are displayed on the console.

   // This server waits for a connection and then uses asynchronous operations to
   // accept the connection with initial data sent from the client.
   // Establish the local endpoint for the socket.
   IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() );
   IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ];
   IPEndPoint^ localEndPoint = gcnew IPEndPoint( ipAddress,11000 );
   
   // Create a TCP/IP socket.
   Socket^ listener = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   
   // Bind the socket to the local endpoint, and listen for incoming connections.
   listener->Bind( localEndPoint );
   listener->Listen( 100 );
   for ( ; ;  )
   {
      
      // Set the event to nonsignaled state.
      allDone->Reset();
      
      // Start an asynchronous socket to listen for connections and receive data from the client.
      Console::WriteLine( "Waiting for a connection..." );
      
      // Accept the connection and receive the first 10 bytes of data.
      int receivedDataSize = 10;
      listener->BeginAccept( receivedDataSize, gcnew AsyncCallback( AcceptReceiveCallback ), listener );
      
      // Wait until a connection is made and processed before continuing.
      allDone->WaitOne();

   }
}

static void AcceptReceiveCallback( IAsyncResult^ ar )
{
   // Get the socket that handles the client request.
   Socket^ listener = dynamic_cast<Socket^>(ar->AsyncState);

   // End the operation and display the received data on the console.
   array<Byte>^Buffer;
   int bytesTransferred;
   Socket^ handler = listener->EndAccept( Buffer, bytesTransferred, ar );
   String^ stringTransferred = Encoding::ASCII->GetString( Buffer, 0, bytesTransferred );
   Console::WriteLine( stringTransferred );
   Console::WriteLine( "Size of data transferred is {0}", bytesTransferred );

   // Create the state object for the asynchronous receive.
   StateObject^ state = gcnew StateObject;
   state->workSocket = handler;
   handler->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast<SocketFlags>(0), gcnew AsyncCallback( ReadCallback ), state );
}


       // This server waits for a connection and then uses asynchronous operations to
       // accept the connection with initial data sent from the client.
            
       
       // Establish the local endpoint for the socket.
   
       IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
       IPAddress ipAddress = ipHostInfo.AddressList[0];
       IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
      
       // Create a TCP/IP socket.
       Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

       // Bind the socket to the local endpoint, and listen for incoming connections.
       listener.Bind(localEndPoint);
       listener.Listen(100);

       while (true) 
       {
           // Set the event to nonsignaled state.
           allDone.Reset();

           // Start an asynchronous socket to listen for connections and receive data from the client.
           Console.WriteLine("Waiting for a connection...");

           // Accept the connection and receive the first 10 bytes of data.
           int receivedDataSize = 10;
           listener.BeginAccept(receivedDataSize, new AsyncCallback(AcceptReceiveCallback), listener);
            
           // Wait until a connection is made and processed before continuing.
           allDone.WaitOne();
       }
 
   }


   public static void AcceptReceiveCallback(IAsyncResult ar) 
   {
       // Get the socket that handles the client request.
       Socket listener = (Socket) ar.AsyncState;
       
       // End the operation and display the received data on the console.
       byte[] Buffer;
       int bytesTransferred;
       Socket handler = listener.EndAccept(out Buffer, out bytesTransferred, ar);
       string stringTransferred = Encoding.ASCII.GetString(Buffer, 0, bytesTransferred);

       Console.WriteLine(stringTransferred);
       Console.WriteLine("Size of data transferred is {0}", bytesTransferred);
             
       // Create the state object for the asynchronous receive.
       StateObject state = new StateObject();
       state.workSocket = handler;
       handler.BeginReceive( state.buffer, 0, StateObject.BufferSize, 0,
       new AsyncCallback(ReadCallback), state);
   }

Hinweise

EndAccept schließt einen aufzurufenden BeginAcceptab.EndAccept completes a call to BeginAccept. Vor dem Aufrufen von BeginAcceptmüssen Sie eine Rückruf Methode erstellen, die vom AsyncCallback Delegaten aufgerufen wird.Before calling BeginAccept, you need to create a callback method that is invoked by the AsyncCallback delegate. Diese Rückruf Methode wird in einem separaten Thread ausgeführt und vom System aufgerufen, nachdem die BeginAccept-Methode zurückgegeben wurde.This callback method executes in a separate thread, and is called by the system after the BeginAccept method returns. Er muss den asyncResult-Parameter akzeptieren, der von der BeginAccept-Methode zurückgegeben wird.It must accept the asyncResult parameter returned from the BeginAccept method.

Rufen Sie innerhalb der Rückruf Methode die AsyncState-Methode des asyncResult-Parameters auf, um die Socket zu erhalten, für die der Verbindungsversuch durchgeführt wird.Within the callback method, call the AsyncState method of the asyncResult parameter to obtain the Socket on which the connection attempt is being made. Nachdem Sie die Socketerhalten haben, können Sie die EndAccept-Methode aufrufen, um den Verbindungsversuch erfolgreich abzuschließen.After obtaining the Socket, you can call the EndAccept method to successfully complete the connection attempt. Der buffer-Parameter dieser Überladung enthält die Daten, die im BeginAccept aufgerufen wurden, und der bytesTransferred-Parameter enthält die Anzahl der Bytes, die im-Befehl übertragen wurden.The buffer parameter of this overload contains the data that was received in the call to BeginAccept and the bytesTransferred parameter contains the number of bytes that were transferred in the call.

Die EndAccept-Methode blockiert, bis eine Verbindung in der Warteschlange für eingehende Verbindungen aussteht.The EndAccept method blocks until a connection is pending in the incoming connection queue. Die EndAccept-Methode akzeptiert die eingehende Verbindung und gibt eine neue Socket zurück, die zum Senden und empfangen von Daten vom Remote Host verwendet werden kann.The EndAccept method accepts the incoming connection and returns a new Socket that can be used to send data to and receive data from the remote host.

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

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.

Gilt für: