StreamSocket.ConnectAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
- EndpointPair
- 如何在通訊端作業上設定逾時
- 如何在通訊端作業上設定逾時
適用於
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(EndpointPair)
- ConnectAsync(HostName, String)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
- EndpointPair
- SocketProtectionLevel
- 如何在通訊端作業上設定逾時
- 如何在通訊端作業上設定逾時
適用於
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
|
備註
必須提供 remoteHostName 和 remoteServiceName 參數。 如果 remoteHostName 為 null,或 remoteServiceName 為 Null 或空字串,則會發生錯誤。
在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。
在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。
另請參閱
- ConnectAsync(EndpointPair)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
- HostName
- 如何在通訊端作業上設定逾時
- 如何在通訊端作業上設定逾時
適用於
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
|
備註
必須提供 remoteHostName 和 remoteServiceName 參數。 如果 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(EndpointPair)
- ConnectAsync(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
- HostName
- SocketProtectionLevel
- 如何在通訊端作業上設定逾時
- 如何在通訊端作業上設定逾時
適用於
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) 方法會系結至本機電腦上 配接 器參數中指定的網路介面,以及 remoteHostName 和 remoteServiceName 參數中指定的遠端主機名和服務名稱,以及 protectionLevel 參數中指定的保護等級。
必須提供 remoteHostName 和 remoteServiceName 參數。 如果 remoteHostName 為 null ,或 remoteServiceName 為 Null 或空字串,則會發生錯誤。 如果 配接器 參數為 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物件,以擷取有效的NetworkAdapter。 IPInformation.NetworkAdapter屬性可用來擷取相關聯的NetworkAdapter。
在 UWP app 中, StreamSocket 類別支援在需要 Proxy 才能完成連線時連線到遠端端點。 此 Proxy 支援對應用程式而言是自動且透明的。 不過,選取特定網路介面卡時,不支援透過 Proxy 連線。 因此在使用 [ConnectAsync (HostName、String、SocketProtectionLevel、NetworkAdapter) 方法時,會停用 Proxy 支援。 如需詳細資訊,請參閱StreamSocket類別參考中支援 Proxy的備註。
在 Windows Phone 8.x 應用程式中,StreamSocket類別不提供 Proxy 的自動支援。
另請參閱
- ConnectAsync(EndpointPair)
- ConnectAsync(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- IPInformation
- NetworkAdapter
- 如何在通訊端作業上設定逾時
- 如何在通訊端作業上設定逾時