Freigeben über


Socket.EndConnect-Methode

Beendet eine ausstehende asynchrone Verbindungsanforderung.

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

Syntax

'Declaration
Public Sub EndConnect ( _
    asyncResult As IAsyncResult _
)
'Usage
Dim instance As Socket
Dim asyncResult As IAsyncResult

instance.EndConnect(asyncResult)
public void EndConnect (
    IAsyncResult asyncResult
)
public:
void EndConnect (
    IAsyncResult^ asyncResult
)
public void EndConnect (
    IAsyncResult asyncResult
)
public function EndConnect (
    asyncResult : IAsyncResult
)

Parameter

  • asyncResult
    Ein IAsyncResult, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

asyncResult ist NULL (Nothing in Visual Basic).

ArgumentException

asyncResult wurde nicht durch einen Aufruf der BeginConnect-Methode zurückgegeben.

InvalidOperationException

EndConnect wurde bereits für die asynchrone Verbindung aufgerufen.

SocketException

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

ObjectDisposedException

Der Socket wurde geschlossen.

Hinweise

Bei EndConnect handelt es sich um eine blockierende Methode, die die asynchrone Verbindungsanforderung mit dem Remotehost abschließt, die mit der BeginConnect-Methode begonnen wurde.

Sie müssen eine Rückrufmethode erstellen, die den AsyncCallback-Delegaten implementiert, bevor Sie BeginConnect aufrufen können. Diese Rückrufmethode wird in einem eigenen Thread ausgeführt und vom System aufgerufen, nachdem BeginConnect beendet wurde. Die Rückrufmethode muss das von der BeginConnect-Methode zurückgegebene IAsyncResult als Parameter akzeptieren.

Rufen Sie in der Rückrufmethode die AsyncState-Methode des IAsyncResult-Parameters auf, um den Socket für den Verbindungsversuch abzurufen. Nachdem Sie den Socket abgerufen haben, können Sie die EndConnect-Methode aufrufen, um den Verbindungsaufbau erfolgreich abzuschließen.

Hinweis

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.

Hinweis

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

Beispiel

Im folgenden Codebeispiel wird der Versuch eines asynchronen Verbindungsaufbaus beendet. Ein vollständiges Beispiel, in dem die asynchrone Kommunikation mit Sockets veranschaulicht wird, finden Sie unter Codebeispiele zu Sockets.

Public Shared Sub Connect_Callback(ar As IAsyncResult)
   

   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   s.EndConnect(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s
   Dim buff As Byte() = Encoding.ASCII.GetBytes("This is a test")
   s.BeginSend(buff, 0, buff.Length, 0, New AsyncCallback(AddressOf Async_Send_Receive.Send_Callback), so2)
End Sub 'Connect_Callback
allDone.Set();
Socket s = (Socket) ar.AsyncState;
s.EndConnect(ar);
StateObject so2 = new StateObject();
so2.workSocket = s;
byte[] buff = Encoding.ASCII.GetBytes("This is a test");
s.BeginSend(buff, 0, buff.Length,0,
                      new AsyncCallback(Async_Send_Receive.Send_Callback), so2);    
allDone->Set();
Socket^ s = safe_cast<Socket^>(ar->AsyncState);
s->EndConnect( ar );
StateObject^ so2 = gcnew StateObject;
so2->workSocket = s;
array<Byte>^ buff = Encoding::ASCII->GetBytes( "This is a test" );
s->BeginSend( buff, 0, buff->Length, SocketFlags::None,
   gcnew AsyncCallback( &Async_Send_Receive::Send_Callback ), so2 );
allDone.Set();
Socket s = (Socket)ar.get_AsyncState();
s.EndConnect(ar);
StateObject so2 = new StateObject();
so2.workSocket = s;
ubyte buff[] = Encoding.get_ASCII().GetBytes("This is a test");
s.BeginSend(buff, 0, buff.length, (SocketFlags)0,
    new AsyncCallback(Async_Send_Receive.Send_Callback), so2);

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Socket-Klasse
Socket-Member
System.Net.Sockets-Namespace
BeginConnect
AsyncCallback
AsyncState