語言

StreamSocket.ConnectAsync 方法

定義

多載

名稱 Description
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 需求

規格需求 Description
應用程式功能
internetClientServer privateNetworkClientServer

備註

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

在 UWP 應用程式中, StreamSocket 類別支援在需要代理完成連線時連接到遠端端點。 這種對代理的支援對應用程式來說是自動且透明的。 當指定本地主機位址時,不支援透過代理連線,因此 endpointPair 參數中傳遞的 LocalHostName 屬性必須為空。 欲了解更多詳細資訊,請參閱 StreamSocket 類別參考中關於代理支援的備註。

另請參閱

適用於

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 需求

規格需求 Description
應用程式功能
internetClientServer privateNetworkClientServer

備註

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

如果 endpointPair 參數中傳遞的 EndpointPair 物件在 LocalServiceName 屬性中包含 null,則會發生錯誤。

JavaScript 中並未公開 [ConnectAsync(EndpointPair, SocketProtectionLevel) 方法。 此方法無法從 JavaScript 呼叫,因為它的參數數與 ConnectAsync(HostName, String) 方法相同。

用 JavaScript 撰寫的應用程式無法直接使用 SSL 連接 StreamSocket 的 端點對 。 為了使用 SSL 連接 端點對 ,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,socket connect 操作可能不會逾時。 若初始連線操作成功,但遠端端點在 SSL 握手期間未終止連線,則可能發生此情況。 為了防範這種情況,應用程式在請求 SSL/TLS 時應該設定連線操作的逾時,逾時過時則中止該操作。 欲了解更多關於使用 JavaScript 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。 欲了解更多使用 VB、C# 或 C++ 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。

在 UWP 應用程式中, StreamSocket 類別支援在需要代理完成連線時連接到遠端端點。 這種對代理的支援對應用程式來說是自動且透明的。 當指定本地主機位址時,不支援透過代理連線,因此 endpointPair 參數中傳遞的 LocalHostName 屬性必須為空。 欲了解更多詳細資訊,請參閱 StreamSocket 類別參考中關於代理支援的備註。

另請參閱

適用於

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 的 Bluetooth 位址。

傳回

一個對 StreamSocket 物件進行非同步連接操作。

屬性

Windows 需求

規格需求 Description
應用程式功能
internetClientServer privateNetworkClientServer

備註

必須提供 remoteHostName 與 remoteServiceName 參數。 若 remoteHostName 為空、 remoteServiceName 為空或字串為空,則會發生錯誤。

在 UWP 應用程式中, StreamSocket 類別支援在需要代理完成連線時連接到遠端端點。 這種對代理的支援對應用程式來說是自動且透明的。 欲了解更多詳細資訊,請參閱 StreamSocket 類別參考中關於代理支援的備註。

另請參閱

適用於

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 的 Bluetooth 位址。

protectionLevel
SocketProtectionLevel

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

傳回

一個對 StreamSocket 物件進行非同步連接操作。

屬性

Windows 需求

規格需求 Description
應用程式功能
internetClientServer privateNetworkClientServer

備註

必須提供 remoteHostName 與 remoteServiceName 參數。 若 remoteHostName 為空、 remoteServiceName 為空或字串為空,則會發生錯誤。

當 protectionLevel 參數設定為需要 SSL 或 TLS 的值時,若遠端網路目的地不支援 SSL 或 TLS,socket connect 操作可能不會逾時。 若初始連線操作成功,但遠端主機在 SSL 握手期間未終止連線,則可能發生這種情況。 為了防範這種情況,應用程式在請求 SSL/TLS 時應該設定連線操作的逾時,逾時過時則中止該操作。 欲了解更多關於使用 JavaScript 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。 欲了解更多使用 VB、C# 或 C++ 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。

在 UWP 應用程式中, StreamSocket 類別支援在需要代理完成連線時連接到遠端端點。 這種對代理的支援對應用程式來說是自動且透明的。 欲了解更多詳細資訊,請參閱 StreamSocket 類別參考中關於代理支援的備註。

另請參閱

適用於

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 的 Bluetooth 位址。

protectionLevel
SocketProtectionLevel

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

adapter
NetworkAdapter

用於 StreamSocket 物件連接操作的本地網路介面卡。

傳回

一個對 StreamSocket 物件進行非同步連接操作。

屬性

備註

[ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) 方法綁定於本地電腦介面 卡 參數中指定的網路介面,遠端主機名稱與服務名稱則在 remoteHostName 與 remoteServiceName 參數中指定,保護層級則由 protectionLevel 參數指定。

必須提供 remoteHostName 與 remoteServiceName 參數。 若 remoteHostName 為 空 、 remoteServiceName 為 空 或字串為空,則會發生錯誤。 若 適配器 參數為 空,則會發生錯誤。

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

使用指定的網路卡則是盡力而為。 若系統將介面卡設定為弱主機或轉發模式,則可使用非指定介面卡的介面卡。

當 protectionLevel 參數設定為需要 SSL 或 TLS 的值時,若遠端網路目的地不支援 SSL 或 TLS,socket connect 操作可能不會逾時。 若初始連線操作成功,但遠端主機在 SSL 握手期間未終止連線,則可能發生這種情況。 為了防範這種情況,應用程式在請求 SSL/TLS 時應該設定連線操作的逾時,逾時過時則中止該操作。 欲了解更多關於使用 JavaScript 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。 欲了解更多使用 VB、C# 或 C++ 設定套接字操作逾時的資訊,請參閱 《如何設定套接字操作的逾時 。

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

在 UWP 應用程式中, StreamSocket 類別支援在需要代理完成連線時連接到遠端端點。 這種對代理的支援對應用程式來說是自動且透明的。 然而,當選擇特定網路卡時,並不支援透過代理連線。 因此,當使用 [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) 方法時,代理支援會被停用。 欲了解更多詳細資訊,請參閱 StreamSocket 類別參考中關於代理支援的備註。

另請參閱

適用於