Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

TcpListener.BeginAcceptTcpClient-Methode (AsyncCallback, Object)

 

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public IAsyncResult BeginAcceptTcpClient(
	AsyncCallback callback,
	object state
)

Parameter

callback

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

state

Ein benutzerdefiniertes Objekt, das Informationen über den Annahmevorgang enthält.Dieses Objekt wird bei Abschluss des Vorgangs an den callback-Delegaten übergeben.

Rückgabewert

Type: System.IAsyncResult

Ein IAsyncResult, das auf die asynchrone Erstellung des TcpClient verweist.

Exception Condition
SocketException

Beim Zugriff auf den Socket ist ein Fehler aufgetreten.Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

Der Socket wurde geschlossen.

Der asynchrone BeginAcceptTcpClient-Vorgang muss durch Aufrufen der EndAcceptTcpClient-Methode abgeschlossen werden.Normalerweise wird die Methode vom callback-Delegaten aufgerufen.

Diese Methode wird erst blockiert, wenn der Vorgang abgeschlossen ist.Verwenden Sie die AcceptTcpClient-Methode, um die Methode zu blockieren, bis der Vorgang abgeschlossen ist.

Ausführliche Informationen über die Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen von synchronen Methoden.

System_CAPS_noteHinweis

Wenn Sie eine SocketException erhalten, verwenden Sie die SocketException.ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen. In der MSDN Library unter http://msdn.microsoft.com/de-de/library/default.aspx finden Sie in der Dokumentation zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers (nur auf Englisch verfügbar).

System_CAPS_noteHinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung mit .Net Framework. Śledzenie sieci w .NET Framework.

Im folgenden Codebeispiel wird die Verwendung der BeginAcceptTcpClient-Methode zum Erstellen und Verbinden eines Sockets veranschaulicht.Der Rückrufdelegat ruft die EndAcceptTcpClient-Methode auf, um die asynchrone Anforderung zu beenden.

// Thread signal.
public static ManualResetEvent tcpClientConnected = 
    new ManualResetEvent(false);

// Accept one client connection asynchronously.
public static void DoBeginAcceptTcpClient(TcpListener 
    listener)
{
    // Set the event to nonsignaled state.
    tcpClientConnected.Reset();

    // Start to listen for connections from a client.
    Console.WriteLine("Waiting for a connection...");

    // Accept the connection. 
    // BeginAcceptSocket() creates the accepted socket.
    listener.BeginAcceptTcpClient(
        new AsyncCallback(DoAcceptTcpClientCallback), 
        listener);

    // Wait until a connection is made and processed before 
    // continuing.
    tcpClientConnected.WaitOne();
}

// Process the client connection.
public static void DoAcceptTcpClientCallback(IAsyncResult ar) 
{
    // Get the listener that handles the client request.
    TcpListener listener = (TcpListener) ar.AsyncState;

    // End the operation and display the received data on 
    // the console.
    TcpClient client = listener.EndAcceptTcpClient(ar);

    // Process the connection here. (Add the client to a
    // server table, read data, etc.)
    Console.WriteLine("Client connected completed");

    // Signal the calling thread to continue.
    tcpClientConnected.Set();

}

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: