(0) exportieren Drucken
Alle erweitern

Socket.BeginConnect-Methode (IPAddress[], Int32, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch ein IPAddress-Array und eine Anschlussnummer angegeben.

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

public IAsyncResult BeginConnect (
	IPAddress[] addresses,
	int port,
	AsyncCallback requestCallback,
	Object state
)
public IAsyncResult BeginConnect (
	IPAddress[] addresses, 
	int port, 
	AsyncCallback requestCallback, 
	Object state
)
public function BeginConnect (
	addresses : IPAddress[], 
	port : int, 
	requestCallback : AsyncCallback, 
	state : Object
) : IAsyncResult
Nicht zutreffend.

Parameter

addresses

Mindestens eine IPAddress, die den Remotehost angibt.

port

Die Anschlussnummer des Remotehosts.

requestCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die aufgerufen wird, wenn der Verbindungsvorgang abgeschlossen wurde.

state

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

Rückgabewert

Ein IAsyncResult, das auf die asynchronen Verbindungen verweist.

AusnahmetypBedingung

ArgumentNullException

addresses ist NULL-Verweis (Nothing in Visual Basic).

SocketException

Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

Der Socket wurde geschlossen.

NotSupportedException

Diese Methode ist für Sockets gültig, die InterNetwork oder InterNetworkV6 verwenden.

ArgumentOutOfRangeException

Die Anschlussnummer ist ungültig.

ArgumentException

Die Länge von address ist 0 (null).

InvalidOperationException

Der Socket ist Listen.

Der asynchrone BeginConnect-Vorgang muss durch Aufrufen der EndConnect-Methode abgeschlossen werden. Normalerweise wird die Methode vom requestCallback-Delegaten aufgerufen.

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

Ausführliche Informationen zum Verwenden des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen von synchronen Methoden.

HinweisHinweis:

Wenn Sie eine SocketException erhalten, können Sie mit der SocketException.ErrorCode-Eigenschaft den spezifischen Fehlercode abrufen. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation der MSDN Library zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers.

HinweisHinweis:

Wenn die Socketverbindung zuvor getrennt wurde, muss BeginConnect für einen Thread aufgerufen werden, der erst nach Abschluss des Vorgangs beendet wird. Dies ist eine Einschränkung des zugrunde liegenden Anbieters. Außerdem muss der verwendete EndPoint anders sein.

HinweisHinweis:

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung.

HinweisHinweis:

Der Ausführungskontext (der Sicherheitskontext, der Benutzer, dessen Identität verwendet wird, und der Kontext des Aufrufs) wird für die asynchrone Socket-Methode zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (eine bestimmte asynchrone Socket-Methode, eine bestimmte Socket-Instanz und ein bestimmter Rückruf) führen weitere Verwendungen zu einer besseren Leistung.

Im folgenden Codebeispiel wird der Versuch eines asynchronen Verbindungsaufbaus initiiert.

public static ManualResetEvent allDone = 
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}


// Asynchronous connect, using DNS.GetHostAddresses
public static void BeginConnect2(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.BeginConnect(IPs, port, 
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  The callback 
    // sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}        

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen:
© 2014 Microsoft