Share via


StreamSocket.ConnectAsync Método

Definição

Sobrecargas

ConnectAsync(EndpointPair)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remota especificado como um objeto EndpointPair .

ConnectAsync(EndpointPair, SocketProtectionLevel)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remoto especificado como um objeto EndpointPair e uma enumeração SocketProtectionLevel . Esse método não pode ser chamado do JavaScript.

ConnectAsync(HostName, String)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remota especificado por um nome de host remoto e um nome de serviço remoto.

ConnectAsync(HostName, String, SocketProtectionLevel)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino remoto especificado por um nome de host remoto, um nome de serviço remoto e um SocketProtectionLevel.

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Inicia uma operação assíncrona em um objeto StreamSocket em um adaptador de rede local especificado para se conectar a um destino remoto especificado por um nome de host remoto, um nome de serviço remoto e um SocketProtectionLevel.

ConnectAsync(EndpointPair)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remota especificado como um objeto EndpointPair .

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

Parâmetros

endpointPair
EndpointPair

Um objeto EndpointPair que especifica o nome do host local ou o endereço IP, o nome do serviço local ou a porta TCP, o nome do host remoto ou o endereço IP remoto e o nome do serviço remoto ou a porta TCP remota para o destino de rede remota.

Retornos

Uma operação de conexão assíncrona em um objeto StreamSocket .

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Comentários

Se o objeto EndpointPair passado no parâmetro endpointPair contiver nulo para a propriedade LocalHostName , o sistema fornecerá o endereço IP local que será usado. Se o objeto EndpointPair passado no parâmetro endpointPair contiver uma cadeia de caracteres vazia para a propriedade LocalServiceName , o sistema fornecerá a porta TCP local que será usada.

Em um aplicativo UWP, a classe StreamSocket dá suporte à conexão a um ponto de extremidade remoto quando os proxies são necessários para concluir a conexão. Esse suporte para proxies é automático e transparente para o aplicativo. Não há suporte para a conexão por meio de proxies quando um endereço de host local é especificado, portanto, a propriedade LocalHostName passada no parâmetro endpointPair deve ser nula. Para obter informações mais detalhadas, consulte as observações sobre o Suporte para proxies na referência da classe StreamSocket .

Em um aplicativo Windows Phone 8.x, a classe StreamSocket não fornece suporte automático para proxies.

Confira também

Aplica-se a

ConnectAsync(EndpointPair, SocketProtectionLevel)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remoto especificado como um objeto EndpointPair e uma enumeração SocketProtectionLevel . Esse método não pode ser chamado do JavaScript.

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

Parâmetros

endpointPair
EndpointPair

Um objeto EndpointPair que especifica o nome do host local ou endereço IP, o nome do serviço local ou a porta TCP, o nome do host remoto ou o endereço IP remoto e o nome do serviço remoto ou a porta TCP remota para o destino de rede remota.

protectionLevel
SocketProtectionLevel

O nível de proteção que representa a integridade e a criptografia de um objeto StreamSocket .

Retornos

Uma operação de conexão assíncrona em um objeto StreamSocket .

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Comentários

Se o objeto EndpointPair passado no parâmetro endpointPair contiver nulo para a propriedade LocalHostName , o sistema fornecerá o endereço IP local que será usado. Se o objeto EndpointPair passado no parâmetro endpointPair contiver uma cadeia de caracteres vazia para a propriedade LocalServiceName , o sistema fornecerá a porta TCP local que será usada.

Se o objeto EndpointPair passado no parâmetro endpointPair contiver nulo para a propriedade LocalServiceName , ocorrerá um erro.

O método [ConnectAsync(EndpointPair, SocketProtectionLevel) não é exposto em JavaScript. Esse método não pode ser chamado do JavaScript, pois ele tem o mesmo número de argumentos que o método ConnectAsync(HostName, String).

Os aplicativos escritos em JavaScript não podem conectar um StreamSocket usando um EndpointPair usando o SSL diretamente. Para conectar um EndpointPair usando SSL, os aplicativos JavaScript podem usar o código a seguir.

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
    }
}   

Quando o parâmetro protectionLevel é definido como um valor que requer SSL ou TLS, a operação de conexão de soquete pode não atingir o tempo limite se o ponto de extremidade remoto não oferecer suporte a SSL ou TLS. Isso pode ocorrer se a operação de conexão inicial for bem-sucedida, mas o ponto de extremidade remoto não encerrar a conexão durante o handshake SSL. Para proteger contra essa situação, um aplicativo deve definir um tempo limite na operação de conexão ao solicitar SSL/TLS e anular a operação se o tempo limite expirar. Para obter mais informações sobre como definir um tempo limite usando JavaScript em operações de soquete, consulte Como definir tempos limite em operações de soquete . Para obter mais informações sobre como definir um tempo limite usando VB, C#ou C++ em operações de soquete, consulte Como definir tempos limite em operações de soquete .

Em um aplicativo UWP, a classe StreamSocket dá suporte à conexão a um ponto de extremidade remoto quando os proxies são necessários para concluir a conexão. Esse suporte para proxies é automático e transparente para o aplicativo. Não há suporte para a conexão por meio de proxies quando um endereço de host local é especificado, portanto, a propriedade LocalHostName passada no parâmetro endpointPair deve ser nula. Para obter informações mais detalhadas, consulte as observações sobre o Suporte para proxies na referência da classe StreamSocket .

Em um aplicativo Windows Phone 8.x, a classe StreamSocket não fornece suporte automático para proxies.

Confira também

Aplica-se a

ConnectAsync(HostName, String)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino de rede remota especificado por um nome de host remoto e um nome de serviço remoto.

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

Parâmetros

remoteHostName
HostName

O nome do host ou endereço IP do destino de rede remota. Para Bluetooth RFCOMM, este é um endereço MAC.

remoteServiceName
String

Platform::String

winrt::hstring

O nome do serviço ou o número da porta TCP do destino de rede remota. Para Bluetooth RFCOMM, esse é o endereço Bluetooth.

Retornos

Uma operação de conexão assíncrona em um objeto StreamSocket .

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Comentários

Os parâmetros remoteHostName e remoteServiceName devem ser fornecidos. Se remoteHostName for nulo ou remoteServiceName for nulo ou uma cadeia de caracteres vazia, ocorrerá um erro.

Em um aplicativo UWP, a classe StreamSocket dá suporte à conexão a um ponto de extremidade remoto quando os proxies são necessários para concluir a conexão. Esse suporte para proxies é automático e transparente para o aplicativo. Para obter informações mais detalhadas, consulte as observações sobre o Suporte para proxies na referência da classe StreamSocket .

Em um aplicativo Windows Phone 8.x, a classe StreamSocket não fornece suporte automático para proxies.

Confira também

Aplica-se a

ConnectAsync(HostName, String, SocketProtectionLevel)

Inicia uma operação assíncrona em um objeto StreamSocket para se conectar a um destino remoto especificado por um nome de host remoto, um nome de serviço remoto e um SocketProtectionLevel.

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

Parâmetros

remoteHostName
HostName

O nome do host ou endereço IP do destino de rede remota. Para Bluetooth RFCOMM, este é um endereço MAC.

remoteServiceName
String

Platform::String

winrt::hstring

O nome do serviço ou o número da porta TCP do destino de rede remota. Para Bluetooth RFCOMM, esse é o endereço Bluetooth.

protectionLevel
SocketProtectionLevel

O nível de proteção que representa a integridade e a criptografia do objeto StreamSocket .

Retornos

Uma operação de conexão assíncrona em um objeto StreamSocket .

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Comentários

Os parâmetros remoteHostName e remoteServiceName devem ser fornecidos. Se remoteHostName for nulo ou remoteServiceName for nulo ou uma cadeia de caracteres vazia, ocorrerá um erro.

Quando o parâmetro protectionLevel é definido como um valor que requer SSL ou TLS, a operação de conexão de soquete pode não atingir o tempo limite se o destino de rede remota não oferecer suporte a SSL ou TLS. Isso pode ocorrer se a operação de conexão inicial for bem-sucedida, mas o host remoto não encerrar a conexão durante o handshake SSL. Para proteger contra essa situação, um aplicativo deve definir um tempo limite na operação de conexão ao solicitar SSL/TLS e anular a operação se o tempo limite expirar. Para obter mais informações sobre como definir um tempo limite usando JavaScript em operações de soquete, consulte Como definir tempos limite em operações de soquete . Para obter mais informações sobre como definir um tempo limite usando VB, C#ou C++ em operações de soquete, consulte Como definir tempos limite em operações de soquete .

Em um aplicativo UWP, a classe StreamSocket dá suporte à conexão a um ponto de extremidade remoto quando os proxies são necessários para concluir a conexão. Esse suporte para proxies é automático e transparente para o aplicativo. Para obter informações mais detalhadas, consulte as observações sobre o Suporte para proxies na referência da classe StreamSocket .

Em um aplicativo Windows Phone 8.x, a classe StreamSocket não fornece suporte automático para proxies.

Confira também

Aplica-se a

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Inicia uma operação assíncrona em um objeto StreamSocket em um adaptador de rede local especificado para se conectar a um destino remoto especificado por um nome de host remoto, um nome de serviço remoto e um SocketProtectionLevel.

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

Parâmetros

remoteHostName
HostName

O nome do host ou endereço IP do destino de rede remota. Para Bluetooth RFCOMM, este é um endereço MAC.

remoteServiceName
String

Platform::String

winrt::hstring

O nome do serviço ou o número da porta TCP do destino de rede remota. Para Bluetooth RFCOMM, esse é o endereço Bluetooth.

protectionLevel
SocketProtectionLevel

O nível de proteção que representa a integridade e a criptografia do objeto StreamSocket .

adapter
NetworkAdapter

O adaptador de rede local a ser usado para a operação de conexão no objeto StreamSocket .

Retornos

Uma operação de conexão assíncrona em um objeto StreamSocket .

Atributos

Comentários

O método [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) é associado a um adaptador de rede especificado no parâmetro do adaptador no computador local e ao nome do host remoto e ao nome do serviço especificados nos parâmetros remoteHostName e remoteServiceName com o nível de proteção especificado no parâmetro protectionLevel .

Os parâmetros remoteHostName e remoteServiceName devem ser fornecidos. Se remoteHostName for nulo ou remoteServiceName for nulo ou uma cadeia de caracteres vazia, ocorrerá um erro. Se o parâmetro do adaptador for nulo, ocorrerá um erro.

O mecanismo de resolução de nomes usado pelo método [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) é limitado à interface especificada para o namespace do sistema de nomes de domínio (DNS).

O uso do adaptador de rede especificado é uma base de melhor esforço. Sistemas com adaptadores configurados em modos de host fraco ou encaminhamento podem usar um adaptador diferente do adaptador especificado.

Quando o parâmetro protectionLevel é definido como um valor que requer SSL ou TLS, a operação de conexão de soquete pode não atingir o tempo limite se o destino de rede remota não oferecer suporte a SSL ou TLS. Isso pode ocorrer se a operação de conexão inicial for bem-sucedida, mas o host remoto não encerrar a conexão durante o handshake SSL. Para proteger contra essa situação, um aplicativo deve definir um tempo limite na operação de conexão ao solicitar SSL/TLS e anular a operação se o tempo limite expirar. Para obter mais informações sobre como definir um tempo limite usando JavaScript em operações de soquete, consulte Como definir tempos limite em operações de soquete . Para obter mais informações sobre como definir um tempo limite usando VB, C#ou C++ em operações de soquete, consulte Como definir tempos limite em operações de soquete .

Um aplicativo pode recuperar um NetworkAdapter válido inspecionando uma instância de HostName (usando o método NetworkInformation.GetHostNames , por exemplo) e recuperando o objeto IPInformation da propriedade Hostname.IPInformation . A propriedade IPInformation.NetworkAdapter pode ser usada para recuperar o NetworkAdapter associado.

Em um aplicativo UWP, a classe StreamSocket dá suporte à conexão a um ponto de extremidade remoto quando os proxies são necessários para concluir a conexão. Esse suporte para proxies é automático e transparente para o aplicativo. No entanto, não há suporte para a conexão por meio de proxies quando um adaptador de rede específico é selecionado. Portanto, o suporte a proxy é desabilitado quando o método [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) é usado. Para obter informações mais detalhadas, consulte as observações sobre o Suporte para proxies na referência da classe StreamSocket .

Em um aplicativo Windows Phone 8.x, a classe StreamSocket não fornece suporte automático para proxies.

Confira também

Aplica-se a