Freigeben über


Socket.Connect Methode

Definition

Stellt eine Verbindung mit einem Remotehost her.

Überlädt

Name Beschreibung
Connect(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

Connect(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch eine IP-Adresse und eine Portnummer angegeben.

Connect(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.

Connect(String, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

Connect(EndPoint)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Stellt eine Verbindung mit einem Remotehost her.

public:
 void Connect(System::Net::EndPoint ^ remoteEP);
public void Connect(System.Net.EndPoint remoteEP);
member this.Connect : System.Net.EndPoint -> unit
Public Sub Connect (remoteEP As EndPoint)

Parameter

remoteEP
EndPoint

Ein EndPoint Wert, der das Remotegerät darstellt.

Ausnahmen

remoteEP ist null.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Das Socket wurde geschlossen.

Ein aufrufer höher im Aufrufstapel verfügt nicht über die Berechtigung für den angeforderten Vorgang.

Die Socket Wurde durch Anrufe Listen(Int32)in einen Überwachungszustand versetzt.

Beispiele

Im folgenden Codebeispiel wird eine Verbindung mit einem Remoteendpunkt hergestellt und anschließend die Verbindung überprüft.

// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);

// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
    byte [] tmp = new byte[1];

    client.Blocking = false;
    client.Send(tmp, 0, 0);
    Console.WriteLine("Connected!");
}
catch (SocketException e)
{
    // 10035 == WSAEWOULDBLOCK
    if (e.NativeErrorCode.Equals(10035))
    {
        Console.WriteLine("Still Connected, but the Send would block");
    }
    else
    {
        Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
    }
}
finally
{
    client.Blocking = blockingState;
}

Console.WriteLine("Connected: {0}", client.Connected);
    ' .Connect throws an exception if unsuccessful
    client.Connect(anEndPoint)
    
    ' This is how you can determine whether a socket is still connected.
    Dim blockingState As Boolean = client.Blocking
    Try
        Dim tmp(0) As Byte
        
        client.Blocking = False
        client.Send(tmp, 0, 0)
        Console.WriteLine("Connected!")
    Catch e As SocketException
        ' 10035 == WSAEWOULDBLOCK
        If e.NativeErrorCode.Equals(10035) Then
            Console.WriteLine("Still Connected, but the Send would block")
        Else
            Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode)
        End If
    Finally
        client.Blocking = blockingState
    End Try
    
    Console.WriteLine("Connected: {0}", client.Connected)

End Sub

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden, stellt die Connect Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remoteendpunkt her. Wenn Sie ein verbindungsloses Protokoll verwenden, Connect wird ein Standard-Remotehost eingerichtet. Nach dem Aufruf Connectkönnen Sie Daten mit der Send Methode an das Remotegerät senden oder Daten vom Remotegerät mit der Receive Methode empfangen.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen Connect . Sie können synchron SendToReceiveFrom mit einem Remotehost kommunizieren. Wenn Sie aufrufen Connect, werden alle Datagramme, die von einer anderen Adresse als der angegebenen Standard stammen, verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption auf SocketOptionName.Broadcast" festlegen" oder Connect einen SocketExceptionFehler auslösen. Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Die Connect Methode wird blockiert, es sei denn, Sie legen die Blocking Eigenschaft false speziell vor dem Aufrufen Connectfest. Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird ein SocketException Fehler ausgelöst, Connect da es Zeit benötigt, um die Verbindung herzustellen. Verbindungslose Protokolle lösen keine Ausnahme aus, da sie einfach einen Standard-Remotehost einrichten. Sie können den SocketException.ErrorCode spezifischen Fehlercode abrufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers. Wenn der Fehler WSAEWOULDBLOCK zurückgegeben wurde, wurde die Remotehostverbindung durch eine verbindungsorientierte Socket, aber noch nicht erfolgreich abgeschlossen. Verwenden Sie die Poll Methode, um zu bestimmen, wann die Socket Verbindung abgeschlossen ist.

Hinweis

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Connectnicht aufgerufen Bind haben, weist der zugrunde liegende Dienstanbieter die lokale Netzwerkadresse und die Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und Portnummer zu, wenn Sie einen Sende- oder Empfangsvorgang abgeschlossen haben. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie Connect erneut mit dem gewünschten Endpunkt auf.

Hinweis

Wenn der Socket zuvor getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für:

Connect(IPAddress, Int32)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch eine IP-Adresse und eine Portnummer angegeben.

public:
 void Connect(System::Net::IPAddress ^ address, int port);
public void Connect(System.Net.IPAddress address, int port);
member this.Connect : System.Net.IPAddress * int -> unit
Public Sub Connect (address As IPAddress, port As Integer)

Parameter

address
IPAddress

Die IP-Adresse des Remotehosts.

port
Int32

Die Portnummer des Remotehosts.

Ausnahmen

address ist null.

Die Portnummer ist ungültig.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Das Socket wurde geschlossen.

Diese Methode ist für Sockets in den InterNetwork Oder InterNetworkV6 Familien gültig.

Die Länge von address 0 ist null.

Die Socket Wurde durch Anrufe Listen(Int32)in einen Überwachungszustand versetzt.

Beispiele

Im folgenden Codebeispiel wird eine Verbindung mit einem Remoteendpunkt hergestellt und anschließend die Verbindung überprüft.

// Synchronous connect using IPAddress to resolve the
// host name.
public static void Connect1(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

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

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(IPs[0], port);
    Console.WriteLine("Connection established");
}

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden, stellt die Connect Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remoteendpunkt her. Wenn Sie ein verbindungsloses Protokoll verwenden, Connect wird ein Standard-Remotehost eingerichtet. Nach dem Aufruf Connect können Sie Daten mit der Send Methode an das Remotegerät senden oder Daten vom Remotegerät mit der Receive Methode empfangen.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen Connect . Sie können synchron SendToReceiveFrom mit einem Remotehost kommunizieren. Wenn Sie Datagramme aufrufen Connect , die von einer anderen Adresse als dem angegebenen Standardwert stammen, werden verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption auf SocketOptionName.Broadcast" festlegen" oder Connect einen SocketExceptionFehler auslösen. Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Connect die Methode blockiert, es sei denn, Sie legen die Blocking Eigenschaft false vor dem Aufrufen Connectauf fest. Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird ein SocketException Fehler ausgelöst, Connect da es Zeit benötigt, um die Verbindung herzustellen. Verbindungslose Protokolle lösen keine Ausnahme aus, da sie einfach einen Standard-Remotehost einrichten. Sie können den SocketException.ErrorCode spezifischen Fehlercode abrufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers. Wenn der Fehler WSAEWOULDBLOCK zurückgegeben wurde, wurde die Remotehostverbindung durch eine verbindungsorientierte Socket, aber noch nicht erfolgreich abgeschlossen. Verwenden Sie die Poll Methode, um zu bestimmen, wann die Socket Verbindung abgeschlossen ist.

Hinweis

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Connectnicht aufgerufen Bind haben, weist der zugrunde liegende Dienstanbieter die lokale Netzwerkadresse und die Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und Portnummer zu, wenn Sie einen Sende- oder Empfangsvorgang abgeschlossen haben. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie Connect erneut mit dem gewünschten Endpunkt auf.

Hinweis

Wenn der Socket zuvor getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Gilt für:

Connect(IPAddress[], Int32)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.

public:
 void Connect(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public void Connect(System.Net.IPAddress[] addresses, int port);
member this.Connect : System.Net.IPAddress[] * int -> unit
Public Sub Connect (addresses As IPAddress(), port As Integer)

Parameter

addresses
IPAddress[]

Die IP-Adressen des Remotehosts.

port
Int32

Die Portnummer des Remotehosts.

Ausnahmen

addresses ist null.

Die Portnummer ist ungültig.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Das Socket wurde geschlossen.

Der Socket befindet sich nicht in den InterNetwork Oder InterNetworkV6 Familien.

Die Länge von addresses 0 ist null.

Die Socket Wurde durch Anrufe Listen(Int32)in einen Überwachungszustand versetzt.

Beispiele

Im folgenden Codebeispiel wird eine Verbindung mit einem Remoteendpunkt hergestellt und anschließend die Verbindung überprüft.

// Synchronous connect using Dns.GetHostAddresses to
// resolve the host name.
public static void Connect2(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(IPs, port);
    Console.WriteLine("Connection established");
}

Hinweise

Diese Methode wird in der Regel unmittelbar nach einem Aufruf GetHostAddressesverwendet, wodurch mehrere IP-Adressen für einen einzelnen Host zurückgegeben werden können. Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden, stellt die Connect Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remoteendpunkt her. Wenn Sie ein verbindungsloses Protokoll verwenden, Connect wird ein Standard-Remotehost eingerichtet. Nach dem Aufruf Connect können Sie Daten mit der Send Methode an das Remotegerät senden oder Daten vom Remotegerät mit der Receive Methode empfangen.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen Connect . Sie können synchron SendToReceiveFrom mit einem Remotehost kommunizieren. Wenn Sie Datagramme aufrufen Connect , die von einer anderen Adresse als dem angegebenen Standardwert stammen, werden verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption auf SocketOptionName.Broadcast" festlegen" oder Connect einen SocketExceptionFehler auslösen. Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Connect die Methode blockiert, es sei denn, Sie legen die Blocking Eigenschaft false vor dem Aufrufen Connectauf fest. Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird ein SocketException Fehler ausgelöst, Connect da es Zeit benötigt, um die Verbindung herzustellen. Verbindungslose Protokolle lösen keine Ausnahme aus, da sie einfach einen Standard-Remotehost einrichten. Sie können den SocketException.ErrorCode spezifischen Fehlercode abrufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers. Wenn der Fehler WSAEWOULDBLOCK zurückgegeben wurde, wurde die Remotehostverbindung durch eine verbindungsorientierte Socket, aber noch nicht erfolgreich abgeschlossen. Verwenden Sie die Poll Methode, um zu bestimmen, wann die Socket Verbindung abgeschlossen ist.

Hinweis

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Connectnicht aufgerufen Bind haben, weist der zugrunde liegende Dienstanbieter die lokale Netzwerkadresse und die Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und Portnummer zu, wenn Sie einen Sende- oder Empfangsvorgang abgeschlossen haben. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie Connect erneut mit dem gewünschten Endpunkt auf.

Hinweis

Wenn der Socket zuvor getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Gilt für:

Connect(String, Int32)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

public:
 void Connect(System::String ^ host, int port);
public void Connect(string host, int port);
member this.Connect : string * int -> unit
Public Sub Connect (host As String, port As Integer)

Parameter

host
String

Der Name des Remotehosts.

port
Int32

Die Portnummer des Remotehosts.

Ausnahmen

host ist null.

Die Portnummer ist ungültig.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Das Socket wurde geschlossen.

Der Socket befindet sich nicht in den InterNetwork Oder InterNetworkV6 Familien.

Die Socket Wurde durch Anrufe Listen(Int32)in einen Überwachungszustand versetzt.

Beispiele

Im folgenden Codebeispiel wird eine Verbindung mit einem Remoteendpunkt hergestellt und anschließend die Verbindung überprüft.

// Synchronous connect using host name (resolved by the
// Connect call.)
public static void Connect3(string host, int port)
{
    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.Connect(host, port);
    Console.WriteLine("Connection established");
}

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden, stellt die Connect Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remotehost her. Wenn Sie ein verbindungsloses Protokoll verwenden, Connect wird ein Standard-Remotehost eingerichtet. Nach dem Aufruf Connect können Sie Daten mit der Send Methode an das Remotegerät senden oder Daten vom Remotegerät mit der Receive Methode empfangen.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen Connect . Sie können synchron SendToReceiveFrom mit einem Remotehost kommunizieren. Wenn Sie Datagramme aufrufen Connect , die von einer anderen Adresse als dem angegebenen Standardwert stammen, werden verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption auf SocketOptionName.Broadcast" festlegen" oder Connect einen SocketExceptionFehler auslösen. Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Die Connect Methode wird blockiert, es sei denn, Sie legen die Blocking Eigenschaft false speziell vor dem Aufrufen Connectfest. Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird ein SocketException Fehler ausgelöst, Connect da es Zeit benötigt, um die Verbindung herzustellen. Verbindungslose Protokolle lösen keine Ausnahme aus, da sie einfach einen Standard-Remotehost einrichten. Sie können den SocketException.ErrorCode spezifischen Fehlercode abrufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers. Wenn der Fehler WSAEWOULDBLOCK zurückgegeben wurde, wurde die Remotehostverbindung durch eine verbindungsorientierte Socket, aber noch nicht erfolgreich abgeschlossen. Verwenden Sie die Poll Methode, um zu bestimmen, wann die Socket Verbindung abgeschlossen ist.

Wenn IPv6 aktiviert ist und die Methode aufgerufen wird, um eine Verbindung mit einem Host herzustellen, der Connect(String, Int32) sowohl zu IPv6- als auch zu IPv4-Adressen aufgelöst wird, wird die Verbindung mit der IPv6-Adresse zuerst vor der IPv4-Adresse versucht. Dies kann dazu führen, dass die Zeit zum Herstellen der Verbindung verzögert wird, wenn der Host nicht auf die IPv6-Adresse lauscht.

Hinweis

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Connectnicht aufgerufen Bind haben, weist der zugrunde liegende Dienstanbieter die lokale Netzwerkadresse und die Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und Portnummer zu, wenn Sie einen Sende- oder Empfangsvorgang abgeschlossen haben. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie Connect erneut mit dem gewünschten Endpunkt auf.

Hinweis

Wenn der Socket zuvor getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Gilt für: