Freigeben über


StreamSocket.ConnectAsync Methode

Definition

Überlädt

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 socketProtectionLevel-Enumeration angegeben ist. Diese Methode kann nicht über JavaScript 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 Remotehosthostnamen, 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 Remotehosthostnamen, 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 TCP-Port, den Remotehostnamen oder die Remote-IP-Adresse sowie den Remotedienstnamen oder den TCP-Remoteport für das Remotenetzwerkziel angibt.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

App-Funktionen
ID_CAP_NETWORKING [Windows Phone] 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 das Herstellen einer Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist automatisch und für die App transparent. Das Herstellen einer Verbindung über Proxys wird nicht unterstützt, wenn eine lokale Hostadresse angegeben wird. Daher muss die im endpointPair-Parameter übergebene LocalHostName-Eigenschaft NULL sein. Ausführlichere Informationen finden Sie in den Hinweisen zur Unterstützung von Proxys in der StreamSocket-Klassenreferenz .

In einer Windows Phone 8.x-App bietet die StreamSocket-Klasse keine automatische Unterstützung für Proxys.

Weitere Informationen

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 socketProtectionLevel-Enumeration angegeben ist. Diese Methode kann nicht über JavaScript 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 TCP-Port, den Remotehostnamen oder die Remote-IP-Adresse sowie den Namen des Remotediensts oder den TCP-Remoteport 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

App-Funktionen
ID_CAP_NETWORKING [Windows Phone] 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 über JavaScript aufgerufen werden, da sie die gleiche Anzahl von Argumenten wie die ConnectAsync(HostName, String)- Methode aufweist.

Apps, die in JavaScript geschrieben wurden, können kein StreamSocket mithilfe eines EndpointPair-Objekts über SSL direkt verbinden. Um eine EndpointPair-Verbindung mithilfe von 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 protectionLevel-Parameter auf einen Wert festgelegt ist, der SSL oder TLS erfordert, kann der Socketverbindungsvorgang möglicherweise kein Timeout aufweisen, wenn der Remoteendpunkt SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der erste Verbindungsvorgang erfolgreich ist, der Remoteendpunkt die Verbindung während des SSL-Handshakes jedoch nicht beendet. Zum Schutz vor dieser Situation sollte eine App beim Verbindungsvorgang beim Anfordern von SSL/TLS ein Timeout 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 das Herstellen einer Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist automatisch und für die App transparent. Das Herstellen einer Verbindung über Proxys wird nicht unterstützt, wenn eine lokale Hostadresse angegeben wird. Daher muss die im endpointPair-Parameter übergebene LocalHostName-Eigenschaft NULL sein. Ausführlichere Informationen finden Sie in den Hinweisen zur Unterstützung von Proxys in der StreamSocket-Klassenreferenz .

In einer Windows Phone 8.x-App bietet die StreamSocket-Klasse keine automatische Unterstützung für Proxys.

Weitere Informationen

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. Für Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Für Bluetooth RFCOMM ist dies die Bluetooth-Adresse.

Gibt zurück

Ein asynchroner Verbindungsvorgang für ein StreamSocket-Objekt .

Attribute

Windows-Anforderungen

App-Funktionen
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Hinweise

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

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

In einer Windows Phone 8.x-App bietet die StreamSocket-Klasse keine automatische Unterstützung für Proxys.

Weitere Informationen

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 Remotehosthostnamen, 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. Für Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Für 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

App-Funktionen
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Hinweise

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

Wenn der protectionLevel-Parameter auf einen Wert festgelegt ist, der SSL oder TLS erfordert, kann der Socketverbindungsvorgang möglicherweise kein Timeout aufweisen, wenn das Remotenetzwerkziel SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der erste Verbindungsvorgang erfolgreich ist, der Remotehost die Verbindung während des SSL-Handshakes jedoch nicht beendet. Zum Schutz vor dieser Situation sollte eine App beim Verbindungsvorgang beim Anfordern von SSL/TLS ein Timeout 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 das Herstellen einer Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist automatisch und für die App transparent. Ausführlichere Informationen finden Sie in den Hinweisen zur Unterstützung von Proxys in der StreamSocket-Klassenreferenz .

In einer Windows Phone 8.x-App bietet die StreamSocket-Klasse keine automatische Unterstützung für Proxys.

Weitere Informationen

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. Für Bluetooth RFCOMM ist dies eine MAC-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Dienstname oder die TCP-Portnummer des Remotenetzwerkziels. Für 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 für das 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 Remotehostname und Dienstnamen, der in den Parametern remoteHostName und remoteServiceName mit der im parameter protectionLevel angegebenen Schutzstufe angegeben ist.

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

Der Von der Methode [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) verwendete Mechanismus zur Namensauflösung 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 im Modus "Schwacher Host" oder "Weiterleitung" 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 für den Socketverbindungsvorgang kein Timeout auftreten, wenn das Remotenetzwerkziel SSL oder TLS nicht unterstützt. Dies kann auftreten, wenn der erste Verbindungsvorgang erfolgreich war, der Remotehost die Verbindung während des SSL-Handshakes jedoch nicht beendet. Um sich vor dieser Situation zu schützen, sollte eine App beim Verbindungsvorgang beim Anfordern von SSL/TLS ein Timeout festlegen und den Vorgang abbrechen, wenn das Timeout abläuft. Weitere Informationen zum Festlegen eines Timeouts mit 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 einen gültigen NetworkAdapter abrufen, indem ein HostName-instance (z. B. mit der NetworkInformation.GetHostNames-Methode) und das IPInformation-Objekt aus der Hostname.IPInformation-Eigenschaft abgerufen wird. Die IPInformation.NetworkAdapter-Eigenschaft kann verwendet werden, um den zugeordneten NetworkAdapter abzurufen.

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

In einer Windows Phone 8.x-App bietet die StreamSocket-Klasse keine automatische Unterstützung für Proxys.

Weitere Informationen

Gilt für: