Condividi tramite


StreamSocket.ConnectAsync Metodo

Definizione

Overload

ConnectAsync(EndpointPair)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata come oggetto EndpointPair .

ConnectAsync(EndpointPair, SocketProtectionLevel)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata come oggetto EndpointPair e un'enumerazione SocketProtectionLevel . Questo metodo non è chiamabile da JavaScript.

ConnectAsync(HostName, String)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata da un nome host remoto e da un nome di servizio remoto.

ConnectAsync(HostName, String, SocketProtectionLevel)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione remota specificata da un nome host remoto, un nome di servizio remoto e un SocketProtectionLevel.

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Avvia un'operazione asincrona su un oggetto StreamSocket in una scheda di rete locale specificata per connettersi a una destinazione remota specificata da un nome host remoto, un nome del servizio remoto e un SocketProtectionLevel.

ConnectAsync(EndpointPair)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata come oggetto 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

Parametri

endpointPair
EndpointPair

Oggetto EndpointPair che specifica il nome host o l'indirizzo IP locale, il nome del servizio locale o la porta TCP, il nome host remoto o l'indirizzo IP remoto e il nome del servizio remoto o la porta TCP remota per la destinazione di rete remota.

Restituisce

Operazione di connessione asincrona su un oggetto StreamSocket .

Attributi

Requisiti Windows

Funzionalità dell'app
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Commenti

Se l'oggetto EndpointPair passato nel parametro endpointPair contiene null per la proprietà LocalHostName , il sistema fornirà l'indirizzo IP locale che verrà usato. Se l'oggetto EndpointPair passato nel parametro endpointPair contiene una stringa vuota per la proprietà LocalServiceName , il sistema fornirà la porta TCP locale che verrà utilizzata.

In un'app UWP la classe StreamSocket supporta la connessione a un endpoint remoto quando sono necessari proxy per completare la connessione. Questo supporto per i proxy è automatico e trasparente per l'app. La connessione tramite proxy non è supportata quando viene specificato un indirizzo host locale, pertanto la proprietà LocalHostName passata nel parametro endpointPair deve essere null. Per informazioni più dettagliate, vedere le osservazioni sul supporto per i proxy nella guida di riferimento alla classe StreamSocket .

In un'app Windows Phone 8.x, la classe StreamSocket non fornisce il supporto automatico per i proxy.

Vedi anche

Si applica a

ConnectAsync(EndpointPair, SocketProtectionLevel)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata come oggetto EndpointPair e un'enumerazione SocketProtectionLevel . Questo metodo non è chiamabile da 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

Parametri

endpointPair
EndpointPair

Oggetto EndpointPair che specifica il nome host locale o l'indirizzo IP, il nome del servizio locale o la porta TCP, il nome host remoto o l'indirizzo IP remoto e il nome del servizio remoto o la porta TCP remota per la destinazione di rete remota.

protectionLevel
SocketProtectionLevel

Livello di protezione che rappresenta l'integrità e la crittografia per un oggetto StreamSocket .

Restituisce

Operazione di connessione asincrona su un oggetto StreamSocket .

Attributi

Requisiti Windows

Funzionalità dell'app
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Commenti

Se l'oggetto EndpointPair passato nel parametro endpointPair contiene null per la proprietà LocalHostName , il sistema fornirà l'indirizzo IP locale che verrà usato. Se l'oggetto EndpointPair passato nel parametro endpointPair contiene una stringa vuota per la proprietà LocalServiceName , il sistema fornirà la porta TCP locale che verrà utilizzata.

Se l'oggetto EndpointPair passato nel parametro endpointPair contiene null per la proprietà LocalServiceName , si verificherà un errore.

Il metodo [ConnectAsync(EndpointPair, SocketProtectionLevel) non è esposto in JavaScript. Questo metodo non può essere chiamato da JavaScript perché ha lo stesso numero di argomenti del metodo ConnectAsync(HostName, String).

Le app scritte in JavaScript non possono connettere un oggetto StreamSocket usando direttamente un endpointPair usando SSL. Per connettere un endpointPair tramite SSL, le app JavaScript possono usare invece il codice seguente.

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 il parametro protectionLevel è impostato su un valore che richiede SSL o TLS, l'operazione di connessione socket potrebbe non timeout se l'endpoint remoto non supporta SSL o TLS. Ciò può verificarsi se l'operazione di connessione iniziale ha esito positivo, ma l'endpoint remoto non termina la connessione durante l'handshake SSL. Per proteggersi da questa situazione, un'app deve impostare un timeout sull'operazione di connessione quando si richiede SSL/TLS e si interrompe l'operazione se il timeout scade. Per altre informazioni sull'impostazione di un timeout usando JavaScript nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket . Per altre informazioni sull'impostazione di un timeout tramite VB, C# o C++ nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket .

In un'app UWP la classe StreamSocket supporta la connessione a un endpoint remoto quando sono necessari proxy per completare la connessione. Questo supporto per i proxy è automatico e trasparente per l'app. La connessione tramite proxy non è supportata quando viene specificato un indirizzo host locale, pertanto la proprietà LocalHostName passata nel parametro endpointPair deve essere null. Per informazioni più dettagliate, vedere le osservazioni sul supporto per i proxy nella guida di riferimento alla classe StreamSocket .

In un'app Windows Phone 8.x, la classe StreamSocket non fornisce il supporto automatico per i proxy.

Vedi anche

Si applica a

ConnectAsync(HostName, String)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione di rete remota specificata da un nome host remoto e da un nome di servizio 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

Parametri

remoteHostName
HostName

Nome host o indirizzo IP della destinazione di rete remota. Per RfCOMM Bluetooth, si tratta di un indirizzo MAC.

remoteServiceName
String

Platform::String

winrt::hstring

Nome del servizio o numero di porta TCP della destinazione di rete remota. Per RFCOMM Bluetooth, questo è l'indirizzo Bluetooth.

Restituisce

Operazione di connessione asincrona su un oggetto StreamSocket .

Attributi

Requisiti Windows

Funzionalità dell'app
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Commenti

È necessario specificare i parametri remoteHostName e remoteServiceName . Se remoteHostName è null o remoteServiceName è null o una stringa vuota, si verificherà un errore.

In un'app UWP la classe StreamSocket supporta la connessione a un endpoint remoto quando sono necessari proxy per completare la connessione. Questo supporto per i proxy è automatico e trasparente per l'app. Per informazioni più dettagliate, vedere le osservazioni sul supporto per i proxy nella guida di riferimento alla classe StreamSocket .

In un'app Windows Phone 8.x, la classe StreamSocket non fornisce il supporto automatico per i proxy.

Vedi anche

Si applica a

ConnectAsync(HostName, String, SocketProtectionLevel)

Avvia un'operazione asincrona su un oggetto StreamSocket per connettersi a una destinazione remota specificata da un nome host remoto, un nome di servizio remoto e un 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

Parametri

remoteHostName
HostName

Nome host o indirizzo IP della destinazione di rete remota. Per RfCOMM Bluetooth, si tratta di un indirizzo MAC.

remoteServiceName
String

Platform::String

winrt::hstring

Nome del servizio o numero di porta TCP della destinazione di rete remota. Per RFCOMM Bluetooth, questo è l'indirizzo Bluetooth.

protectionLevel
SocketProtectionLevel

Livello di protezione che rappresenta l'integrità e la crittografia per l'oggetto StreamSocket .

Restituisce

Operazione di connessione asincrona su un oggetto StreamSocket .

Attributi

Requisiti Windows

Funzionalità dell'app
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Commenti

È necessario specificare i parametri remoteHostName e remoteServiceName . Se remoteHostName è null o remoteServiceName è null o una stringa vuota, si verificherà un errore.

Quando il parametro protectionLevel è impostato su un valore che richiede SSL o TLS, l'operazione di connessione socket potrebbe non essere timeout se la destinazione di rete remota non supporta SSL o TLS. Ciò può verificarsi se l'operazione di connessione iniziale ha esito positivo, ma l'host remoto non termina la connessione durante l'handshake SSL. Per proteggersi da questa situazione, un'app deve impostare un timeout sull'operazione di connessione quando si richiede SSL/TLS e si interrompe l'operazione se il timeout scade. Per altre informazioni sull'impostazione di un timeout usando JavaScript nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket . Per altre informazioni sull'impostazione di un timeout tramite VB, C# o C++ nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket .

In un'app UWP la classe StreamSocket supporta la connessione a un endpoint remoto quando sono necessari proxy per completare la connessione. Questo supporto per i proxy è automatico e trasparente per l'app. Per informazioni più dettagliate, vedere le osservazioni sul supporto per i proxy nella guida di riferimento alla classe StreamSocket .

In un'app Windows Phone 8.x, la classe StreamSocket non fornisce il supporto automatico per i proxy.

Vedi anche

Si applica a

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

Avvia un'operazione asincrona su un oggetto StreamSocket in una scheda di rete locale specificata per connettersi a una destinazione remota specificata da un nome host remoto, un nome del servizio remoto e un 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

Parametri

remoteHostName
HostName

Nome host o indirizzo IP della destinazione di rete remota. Per RfCOMM Bluetooth, si tratta di un indirizzo MAC.

remoteServiceName
String

Platform::String

winrt::hstring

Nome del servizio o numero di porta TCP della destinazione di rete remota. Per RFCOMM Bluetooth, questo è l'indirizzo Bluetooth.

protectionLevel
SocketProtectionLevel

Livello di protezione che rappresenta l'integrità e la crittografia per l'oggetto StreamSocket .

adapter
NetworkAdapter

Scheda di rete locale da utilizzare per l'operazione di connessione nell'oggetto StreamSocket .

Restituisce

Operazione di connessione asincrona su un oggetto StreamSocket .

Attributi

Commenti

Il metodo [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) viene associato a un'interfaccia di rete specificata nel parametro adapter nel computer locale e il nome host remoto e il nome del servizio specificati nei parametri remoteHostName e remoteServiceName con il livello di protezione specificato nel parametro protectionLevel .

È necessario specificare i parametri remoteHostName e remoteServiceName . Se remoteHostName è null o remoteServiceName è null o una stringa vuota, si verificherà un errore. Se il parametro dell'adattatore è Null, si verificherà un errore.

Il meccanismo di risoluzione dei nomi usato dal metodo [ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) è limitato all'interfaccia specificata per lo spazio dei nomi DNS (Domain Name System).

L'uso della scheda di rete specificata è su base ottimale. I sistemi con adattatori configurati in modalità host debole o di inoltro possono usare una scheda diversa dalla scheda specificata.

Quando il parametro protectionLevel è impostato su un valore che richiede SSL o TLS, l'operazione di connessione socket potrebbe non essere timeout se la destinazione di rete remota non supporta SSL o TLS. Ciò può verificarsi se l'operazione di connessione iniziale ha esito positivo, ma l'host remoto non termina la connessione durante l'handshake SSL. Per proteggersi da questa situazione, un'app deve impostare un timeout sull'operazione di connessione quando si richiede SSL/TLS e si interrompe l'operazione se il timeout scade. Per altre informazioni sull'impostazione di un timeout usando JavaScript nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket . Per altre informazioni sull'impostazione di un timeout tramite VB, C# o C++ nelle operazioni socket, vedere Come impostare i timeout sulle operazioni socket .

Un'app può recuperare un NetworkAdapter valido controllando un'istanza hostName (usando ad esempio il metodo NetworkInformation.GetHostNames) e recuperando l'oggetto IPInformation dalla proprietà Hostname.IPInformation. La proprietà IPInformation.NetworkAdapter può essere utilizzata per recuperare l'oggetto NetworkAdapter associato.

In un'app UWP la classe StreamSocket supporta la connessione a un endpoint remoto quando sono necessari proxy per completare la connessione. Questo supporto per i proxy è automatico e trasparente per l'app. Tuttavia, la connessione tramite proxy non è supportata quando viene selezionata una scheda di rete specifica. Il supporto proxy viene quindi disabilitato quando viene usato il metodo [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter). Per informazioni più dettagliate, vedere le osservazioni sul supporto per i proxy nella guida di riferimento alla classe StreamSocket .

In un'app Windows Phone 8.x, la classe StreamSocket non fornisce il supporto automatico per i proxy.

Vedi anche

Si applica a