Sprache

StreamSocket.ConnectAsync Methode

Definition

Überlädt

Name Beschreibung
ConnectAsync(EndpointPair)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt angegeben ist.

ConnectAsync(EndpointPair, SocketProtectionLevel)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt und eine SocketProtectionLevel-Enumeration angegeben ist. Diese Methode kann von JavaScript nicht aufgerufen werden.

ConnectAsync(HostName, String)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das durch einen Remotehostnamen und einen Remotedienstnamen angegeben wird.

ConnectAsync(HostName, String, SocketProtectionLevel)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird.

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt auf einem angegebenen lokalen Netzwerkadapter, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird.

ConnectAsync(EndpointPair)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt angegeben ist.

public:
 virtual IAsyncAction ^ ConnectAsync(EndpointPair ^ endpointPair) = ConnectAsync;
/// [Windows.Foundation.Metadata.Overload("ConnectWithEndpointPairAsync")]
IAsyncAction ConnectAsync(EndpointPair const& endpointPair);
[Windows.Foundation.Metadata.Overload("ConnectWithEndpointPairAsync")]
public IAsyncAction ConnectAsync(EndpointPair endpointPair);
function connectAsync(endpointPair)
Public Function ConnectAsync (endpointPair As EndpointPair) As IAsyncAction

Parameter

endpointPair
EndpointPair

Ein EndpointPair-Objekt , das den lokalen Hostnamen oder die IP-Adresse, den lokalen Dienstnamen oder den TCP-Port, den Remotehostnamen oder die Remote-IP-Adresse sowie den Namen des Remotediensts oder den Remote-TCP-Port für das Remotenetzwerkziel angibt.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

Anforderungen Beschreibung
App-Funktionen
internetClientServer privateNetworkClientServer

Hinweise

Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt null für die LocalHostName-Eigenschaft enthält, gibt das System die lokale IP-Adresse an, die verwendet wird. Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt eine leere Zeichenfolge für die LocalServiceName-Eigenschaft enthält, gibt das System den lokalen TCP-Port an, der verwendet wird.

In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Das Herstellen einer Verbindung über Proxys wird nicht unterstützt, wenn eine lokale Hostadresse angegeben wird, sodass die im parameter endpointPair übergebene LocalHostName-Eigenschaft null sein muss. Ausführlichere Informationen finden Sie in den Anmerkungen zur Unterstützung für Proxys in der StreamSocket-Klassenreferenz .

Siehe auch

Gilt für:

ConnectAsync(EndpointPair, SocketProtectionLevel)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt und eine SocketProtectionLevel-Enumeration angegeben ist. Diese Methode kann von JavaScript nicht aufgerufen werden.

public:
 virtual IAsyncAction ^ ConnectAsync(EndpointPair ^ endpointPair, SocketProtectionLevel protectionLevel) = ConnectAsync;
/// [Windows.Foundation.Metadata.Overload("ConnectWithEndpointPairAndProtectionLevelAsync")]
IAsyncAction ConnectAsync(EndpointPair const& endpointPair, SocketProtectionLevel const& protectionLevel);
[Windows.Foundation.Metadata.Overload("ConnectWithEndpointPairAndProtectionLevelAsync")]
public IAsyncAction ConnectAsync(EndpointPair endpointPair, SocketProtectionLevel protectionLevel);
function connectAsync(endpointPair, protectionLevel)
Public Function ConnectAsync (endpointPair As EndpointPair, protectionLevel As SocketProtectionLevel) As IAsyncAction

Parameter

endpointPair
EndpointPair

Ein EndpointPair-Objekt , das den lokalen Hostnamen oder die IP-Adresse, den lokalen Dienstnamen oder den TCP-Port, den Remotehostnamen oder die Remote-IP-Adresse sowie den Namen des Remotediensts oder den Remote-TCP-Port für das Remotenetzwerkziel angibt.

protectionLevel
SocketProtectionLevel

Die Schutzebene, die die Integrität und Verschlüsselung für ein StreamSocket -Objekt darstellt.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

Anforderungen Beschreibung
App-Funktionen
internetClientServer privateNetworkClientServer

Hinweise

Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt null für die LocalHostName-Eigenschaft enthält, gibt das System die lokale IP-Adresse an, die verwendet wird. Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt eine leere Zeichenfolge für die LocalServiceName-Eigenschaft enthält, gibt das System den lokalen TCP-Port an, der verwendet wird.

Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt null für die LocalServiceName-Eigenschaft enthält, tritt ein Fehler auf.

Die [ConnectAsync(EndpointPair, SocketProtectionLevel)-Methode wird in JavaScript nicht verfügbar gemacht. Diese Methode kann nicht von JavaScript aufgerufen werden, da sie dieselbe Anzahl von Argumenten wie die ConnectAsync(HostName, String)- Methode aufweist.

Apps, die in JavaScript geschrieben wurden, können ein StreamSocket nicht mithilfe eines EndpointPair mithilfe von SSL direkt verbinden. Um eine EndpointPair-Verbindung mit SSL herzustellen, können JavaScript-Apps stattdessen den folgenden Code verwenden.

var clientSocket = new Windows.Networking.Sockets.StreamSocket();
var remoteName = new Windows.Networking.HostName("www.contoso.com");
var myEndpointPair = EndpointPair();

// Set properties needed on the EndpointPair
// We only set remote properties and the localServiceName,
// But the localHostName could also be set

myEndpointPair.localServiceName = "12345";
myEndpointPair.remoteHostName = remoteName;
myEndpointPair.remoteServiceName = "http";

// First connect the socket without SSL
clientSocket.connectAsync(myEendpointPair>).then(function () {
    // Now upgrade the connection to SSL
    clientSocket.upgradeToSslAsync(SocketProtectionLevel.Ssl).then(function () {
        // now connected using SSL
    }
}   

Wenn der parameter protectionLevel auf einen Wert festgelegt ist, der SSL oder TLS erfordert, kann der Socketverbindungsvorgang kein Timeout ausführen, wenn der Remoteendpunkt SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der anfängliche Verbindungsvorgang erfolgreich ist, der Remoteendpunkt die Verbindung jedoch während des SSL-Handshakes nicht beendet. Um sich vor dieser Situation zu schützen, sollte eine App beim Anfordern von SSL/TLS ein Timeout für den Verbindungsvorgang festlegen und den Vorgang abbrechen, wenn das Timeout abläuft. Weitere Informationen zum Festlegen eines Timeouts mithilfe von JavaScript für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge . Weitere Informationen zum Festlegen eines Timeouts mit VB-, C#- oder C++ für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge .

In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Das Herstellen einer Verbindung über Proxys wird nicht unterstützt, wenn eine lokale Hostadresse angegeben wird, sodass die im parameter endpointPair übergebene LocalHostName-Eigenschaft null sein muss. Ausführlichere Informationen finden Sie in den Anmerkungen zur Unterstützung für Proxys in der StreamSocket-Klassenreferenz .

Siehe auch

Gilt für:

ConnectAsync(HostName, String)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das durch einen Remotehostnamen und einen Remotedienstnamen angegeben wird.

public:
 virtual IAsyncAction ^ ConnectAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName) = ConnectAsync;
/// [Windows.Foundation.Metadata.DefaultOverload]
/// [Windows.Foundation.Metadata.Overload("ConnectAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction ConnectAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName);
[Windows.Foundation.Metadata.DefaultOverload]
[Windows.Foundation.Metadata.Overload("ConnectAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction ConnectAsync(HostName remoteHostName, string remoteServiceName);
function connectAsync(remoteHostName, remoteServiceName)
Public Function ConnectAsync (remoteHostName As HostName, remoteServiceName As String) As IAsyncAction

Parameter

remoteHostName
HostName

Der Hostname oder die IP-Adresse des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies die Bluetooth-Adresse.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

Anforderungen Beschreibung
App-Funktionen
internetClientServer privateNetworkClientServer

Hinweise

Die Parameter "remoteHostName " und "remoteServiceName " müssen angegeben werden. Wenn der remoteHostName null ist oder der remoteServiceName null oder eine leere Zeichenfolge ist, tritt ein Fehler auf.

In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Ausführlichere Informationen finden Sie in den Anmerkungen zur Unterstützung für Proxys in der StreamSocket-Klassenreferenz .

Siehe auch

Gilt für:

ConnectAsync(HostName, String, SocketProtectionLevel)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird.

public:
 virtual IAsyncAction ^ ConnectAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName, SocketProtectionLevel protectionLevel) = ConnectAsync;
/// [Windows.Foundation.Metadata.Overload("ConnectWithProtectionLevelAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction ConnectAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName, SocketProtectionLevel const& protectionLevel);
[Windows.Foundation.Metadata.Overload("ConnectWithProtectionLevelAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction ConnectAsync(HostName remoteHostName, string remoteServiceName, SocketProtectionLevel protectionLevel);
function connectAsync(remoteHostName, remoteServiceName, protectionLevel)
Public Function ConnectAsync (remoteHostName As HostName, remoteServiceName As String, protectionLevel As SocketProtectionLevel) As IAsyncAction

Parameter

remoteHostName
HostName

Der Hostname oder die IP-Adresse des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies die Bluetooth-Adresse.

protectionLevel
SocketProtectionLevel

Die Schutzebene, die die Integrität und Verschlüsselung für das StreamSocket-Objekt darstellt.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

Anforderungen Beschreibung
App-Funktionen
internetClientServer privateNetworkClientServer

Hinweise

Die Parameter "remoteHostName " und "remoteServiceName " müssen angegeben werden. Wenn der remoteHostName null ist oder der remoteServiceName null oder eine leere Zeichenfolge ist, tritt ein Fehler auf.

Wenn der parameter protectionLevel auf einen Wert festgelegt ist, der SSL oder TLS erfordert, kann der Socketverbindungsvorgang nicht timeout sein, wenn das Remotenetzwerkziel SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der anfängliche Verbindungsvorgang erfolgreich ist, aber der Remotehost beendet die Verbindung während des SSL-Handshakes nicht. Um sich vor dieser Situation zu schützen, sollte eine App beim Anfordern von SSL/TLS ein Timeout für den Verbindungsvorgang festlegen und den Vorgang abbrechen, wenn das Timeout abläuft. Weitere Informationen zum Festlegen eines Timeouts mithilfe von JavaScript für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge . Weitere Informationen zum Festlegen eines Timeouts mit VB-, C#- oder C++ für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge .

In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Ausführlichere Informationen finden Sie in den Anmerkungen zur Unterstützung für Proxys in der StreamSocket-Klassenreferenz .

Siehe auch

Gilt für:

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Startet einen asynchronen Vorgang für ein StreamSocket -Objekt auf einem angegebenen lokalen Netzwerkadapter, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird.

public:
 virtual IAsyncAction ^ ConnectAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName, SocketProtectionLevel protectionLevel, NetworkAdapter ^ adapter) = ConnectAsync;
/// [Windows.Foundation.Metadata.Overload("ConnectWithProtectionLevelAndAdapterAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction ConnectAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName, SocketProtectionLevel const& protectionLevel, NetworkAdapter const& adapter);
[Windows.Foundation.Metadata.Overload("ConnectWithProtectionLevelAndAdapterAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction ConnectAsync(HostName remoteHostName, string remoteServiceName, SocketProtectionLevel protectionLevel, NetworkAdapter adapter);
function connectAsync(remoteHostName, remoteServiceName, protectionLevel, adapter)
Public Function ConnectAsync (remoteHostName As HostName, remoteServiceName As String, protectionLevel As SocketProtectionLevel, adapter As NetworkAdapter) As IAsyncAction

Parameter

remoteHostName
HostName

Der Hostname oder die IP-Adresse des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Bei Bluetooth RFCOMM ist dies die Bluetooth-Adresse.

protectionLevel
SocketProtectionLevel

Die Schutzebene, die die Integrität und Verschlüsselung für das StreamSocket-Objekt darstellt.

adapter
NetworkAdapter

Der lokale Netzwerkadapter, der für den Verbindungsvorgang im StreamSocket-Objekt verwendet werden soll.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Hinweise

Die [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter)-Methode bindet an eine Netzwerkschnittstelle, die im Adapterparameter auf dem lokalen Computer angegeben ist, sowie an den Remotehostnamen und den Dienstnamen, der in den Parametern remoteHostName und remoteServiceName angegeben ist, mit der im Parameter "protectionLevel " angegebenen Schutzebene.

Die Parameter "remoteHostName " und "remoteServiceName " müssen angegeben werden. Wenn der remoteHostNamenull ist oder der remoteServiceNamenull oder eine leere Zeichenfolge ist, tritt ein Fehler auf. Wenn der Adapterparameternull ist, tritt ein Fehler auf.

Der von der [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter)-Methode verwendete Namensauflösungsmechanismus ist auf die angegebene Schnittstelle für den DNS-Namespace (Domain Name System) beschränkt.

Die Verwendung des angegebenen Netzwerkadapters erfolgt auf best-effort-Basis. Systeme mit Adaptern, die in schwachen Host- oder Weiterleitungsmodi konfiguriert sind, können einen anderen Adapter als den angegebenen Adapter verwenden.

Wenn der parameter protectionLevel auf einen Wert festgelegt ist, der SSL oder TLS erfordert, kann der Socketverbindungsvorgang nicht timeout sein, wenn das Remotenetzwerkziel SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der anfängliche Verbindungsvorgang erfolgreich ist, aber der Remotehost beendet die Verbindung während des SSL-Handshakes nicht. Um sich vor dieser Situation zu schützen, sollte eine App beim Anfordern von SSL/TLS ein Timeout für den Verbindungsvorgang festlegen und den Vorgang abbrechen, wenn das Timeout abläuft. Weitere Informationen zum Festlegen eines Timeouts mithilfe von JavaScript für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge . Weitere Informationen zum Festlegen eines Timeouts mit VB-, C#- oder C++ für Socketvorgänge finden Sie unter Festlegen von Timeouts für Socketvorgänge .

Eine App kann ein gültiges NetworkAdapter-Objekt abrufen, indem eine HostName-Instanz (z. B. mithilfe der NetworkInformation.GetHostNames-Methode ) überprüft und das IPInformation-Objekt aus der Hostname.IPInformation-Eigenschaft abgerufen wird. Die IPInformation.NetworkAdapter-Eigenschaft kann zum Abrufen des zugeordneten NetworkAdapter verwendet werden.

In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Die Verbindung über Proxys wird jedoch nicht unterstützt, wenn ein bestimmter Netzwerkadapter ausgewählt ist. Daher ist die Proxyunterstützung deaktiviert, wenn die [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)-Methode verwendet wird. Ausführlichere Informationen finden Sie in den Anmerkungen zur Unterstützung für Proxys in der StreamSocket-Klassenreferenz .

Siehe auch

Gilt für: