StreamSocket.ConnectAsync 方法

定義

多載

ConnectAsync(EndpointPair)

StreamSocket 物件上啟動非同步作業,以連線到指定為 EndpointPair 物件的遠端網路目的地。

ConnectAsync(EndpointPair, SocketProtectionLevel)

StreamSocket 物件上啟動非同步作業,以連線到指定為 EndpointPair 物件和 SocketProtectionLevel 列舉的遠端網路目的地。 這個方法無法從 JavaScript 呼叫。

ConnectAsync(HostName, String)

StreamSocket 物件上啟動非同步作業,以連線到遠端主機名和遠端服務名稱所指定的遠端網路目的地。

ConnectAsync(HostName, String, SocketProtectionLevel)

StreamSocket 物件上啟動非同步作業,以連線到遠端主機名、遠端服務名稱和 SocketProtectionLevel所指定的遠端目的地。

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

在指定的區域網路卡上 啟動 StreamSocket 物件的非同步作業,以連線到遠端主機名、遠端服務名稱和 SocketProtectionLevel所指定的遠端目的地。

ConnectAsync(EndpointPair)

StreamSocket 物件上啟動非同步作業,以連線到指定為 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

參數

endpointPair
EndpointPair

EndpointPair物件,指定本機主機名稱或 IP 位址、本機服務名稱或 TCP 埠、遠端主機名或遠端 IP 位址,以及遠端網路目的地的遠端服務名稱或遠端 TCP 埠。

傳回

StreamSocket物件上的非同步連接作業。

屬性

Windows 需求

應用程式功能
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

備註

如果傳入 endpointPair參數的EndpointPair物件包含LocalHostName屬性的 Null,則系統會提供將使用的本機 IP 位址。 如果傳入 endpointPair參數的EndpointPair物件包含LocalServiceName屬性的空字串,則系統會提供將使用的本機 TCP 埠。

在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 指定本機主機位址時不支援透過 Proxy 連線,因此在endpointPair參數中傳遞的LocalHostName屬性必須是 Null。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。

在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。

另請參閱

適用於

ConnectAsync(EndpointPair, SocketProtectionLevel)

StreamSocket 物件上啟動非同步作業,以連線到指定為 EndpointPair 物件和 SocketProtectionLevel 列舉的遠端網路目的地。 這個方法無法從 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

參數

endpointPair
EndpointPair

EndpointPair物件,指定本機主機名稱或 IP 位址、本機服務名稱或 TCP 埠、遠端主機名或遠端 IP 位址,以及遠端網路目的地的遠端服務名稱或遠端 TCP 埠。

protectionLevel
SocketProtectionLevel

代表 StreamSocket 物件完整性和加密的保護層級。

傳回

StreamSocket物件上的非同步連接作業。

屬性

Windows 需求

應用程式功能
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

備註

如果傳入 endpointPair參數的EndpointPair物件包含LocalHostName屬性的 Null,則系統會提供將使用的本機 IP 位址。 如果傳入 endpointPair參數的EndpointPair物件包含LocalServiceName屬性的空字串,則系統會提供將使用的本機 TCP 埠。

如果傳入 endpointPair參數的EndpointPair物件包含LocalServiceName屬性的 Null,則會發生錯誤。

[ConnectAsync (EndpointPair, SocketProtectionLevel) 方法不會在 JavaScript 中公開。 無法從 JavaScript 呼叫這個方法,因為它的引數數目與 ConnectAsync (HostName、String) 方法相同。

以 JavaScript 撰寫的應用程式無法使用使用 SSL 直接使用 EndpointPair連線StreamSocket。 為了使用 SSL 連線 EndpointPair ,JavaScript 應用程式可以改用下列程式碼。

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

protectionLevel 參數設定為需要 SSL 或 TLS 的值時,如果遠端端點不支援 SSL 或 TLS,通訊端連線作業可能不會逾時。 如果初始連線作業成功,但遠端端點不會在 SSL 交握期間終止連線,就會發生此情況。 若要防範這種情況,當要求 SSL/TLS 時,應用程式應該在連線作業上設定逾時,並在逾時到期時中止作業。 如需在通訊端作業上使用 JavaScript 設定逾時的詳細資訊,請參閱 如何在通訊端作業上設定逾時 。 如需在通訊端作業上使用 VB、C# 或 C++ 設定逾時的詳細資訊,請參閱 如何在通訊端作業 上設定逾時

在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 指定本機主機位址時不支援透過 Proxy 連線,因此在endpointPair參數中傳遞的LocalHostName屬性必須是 Null。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。

在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。

另請參閱

適用於

ConnectAsync(HostName, String)

StreamSocket 物件上啟動非同步作業,以連線到遠端主機名和遠端服務名稱所指定的遠端網路目的地。

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

參數

remoteHostName
HostName

遠端網路目的地的主機名稱或 IP 位址。 針對藍牙 RFCOMM,這是 MAC 位址。

remoteServiceName
String

Platform::String

winrt::hstring

遠端網路目的地的服務名稱或 TCP 埠號碼。 針對藍牙 RFCOMM,這是藍牙位址。

傳回

StreamSocket物件上的非同步連接作業。

屬性

Windows 需求

應用程式功能
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

備註

必須提供 remoteHostNameremoteServiceName 參數。 如果 remoteHostName 為 null,或 remoteServiceName 為 Null 或空字串,則會發生錯誤。

在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。

在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。

另請參閱

適用於

ConnectAsync(HostName, String, SocketProtectionLevel)

StreamSocket 物件上啟動非同步作業,以連線到遠端主機名、遠端服務名稱和 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

參數

remoteHostName
HostName

遠端網路目的地的主機名稱或 IP 位址。 針對藍牙 RFCOMM,這是 MAC 位址。

remoteServiceName
String

Platform::String

winrt::hstring

遠端網路目的地的服務名稱或 TCP 埠號碼。 針對藍牙 RFCOMM,這是藍牙位址。

protectionLevel
SocketProtectionLevel

代表 StreamSocket 物件完整性和加密的保護層級。

傳回

StreamSocket物件上的非同步連接作業。

屬性

Windows 需求

應用程式功能
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

備註

必須提供 remoteHostNameremoteServiceName 參數。 如果 remoteHostName 為 null,或 remoteServiceName 為 Null 或空字串,則會發生錯誤。

protectionLevel 參數設定為需要 SSL 或 TLS 的值時,如果遠端網路目的地不支援 SSL 或 TLS,通訊端連線作業可能不會逾時。 如果初始連線作業成功,但遠端主機不會在 SSL 交握期間終止連線,就會發生這種情況。 若要防範這種情況,當要求 SSL/TLS 時,應用程式應該在連線作業上設定逾時,並在逾時到期時中止作業。 如需在通訊端作業上使用 JavaScript 設定逾時的詳細資訊,請參閱 如何在通訊端作業上設定逾時 。 如需在通訊端作業上使用 VB、C# 或 C++ 設定逾時的詳細資訊,請參閱 如何在通訊端作業 上設定逾時

在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。

在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。

另請參閱

適用於

ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)

在指定的區域網路卡上 啟動 StreamSocket 物件的非同步作業,以連線到遠端主機名、遠端服務名稱和 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

參數

remoteHostName
HostName

遠端網路目的地的主機名稱或 IP 位址。 針對藍牙 RFCOMM,這是 MAC 位址。

remoteServiceName
String

Platform::String

winrt::hstring

遠端網路目的地的服務名稱或 TCP 埠號碼。 針對藍牙 RFCOMM,這是藍牙位址。

protectionLevel
SocketProtectionLevel

代表 StreamSocket 物件完整性和加密的保護層級。

adapter
NetworkAdapter

StreamSocket 物件上用於連接作業的區域網路卡。

傳回

StreamSocket物件上的非同步連接作業。

屬性

備註

[ConnectAsync (Hostname、String、SocketProtectionLevel、NetworkAdapter) 方法會系結至本機電腦上 配接 器參數中指定的網路介面,以及 remoteHostNameremoteServiceName 參數中指定的遠端主機名和服務名稱,以及 protectionLevel 參數中指定的保護等級。

必須提供 remoteHostNameremoteServiceName 參數。 如果 remoteHostNamenull ,或 remoteServiceNameNull 或空字串,則會發生錯誤。 如果 配接器 參數為 Null,就會發生錯誤。

[ConnectAsync (Hostname、String、SocketProtectionLevel、NetworkAdapter) 方法所使用的名稱解析機制僅限於網域名稱系統 (DNS) 命名空間的指定介面。

使用指定的網路介面卡是盡最大努力。 在弱式主機或轉送模式中設定介面卡的系統,可能會使用指定的配接器以外的介面卡。

protectionLevel 參數設定為需要 SSL 或 TLS 的值時,如果遠端網路目的地不支援 SSL 或 TLS,通訊端連線作業可能不會逾時。 如果初始連線作業成功,但遠端主機不會在 SSL 交握期間終止連線,就會發生這種情況。 若要防範這種情況,當要求 SSL/TLS 時,應用程式應該在連線作業上設定逾時,並在逾時到期時中止作業。 如需在通訊端作業上使用 JavaScript 設定逾時的詳細資訊,請參閱 如何在通訊端作業上設定逾時 。 如需在通訊端作業上使用 VB、C# 或 C++ 設定逾時的詳細資訊,請參閱 如何在通訊端作業 上設定逾時

應用程式可以使用NetworkInformation.GetHostNames方法來檢查HostName實例 (,例如) 並從Hostname.IPInformation屬性擷取IPInformation物件,以擷取有效的NetworkAdapterIPInformation.NetworkAdapter屬性可用來擷取相關聯的NetworkAdapter

在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 不過,選取特定網路介面卡時,不支援透過 Proxy 連線。 因此在使用 [ConnectAsync (HostName、String、SocketProtectionLevel、NetworkAdapter) 方法時,會停用 Proxy 支援。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。

在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。

另請參閱

適用於