StreamSocket.ConnectAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| Name | 説明 |
|---|---|
| ConnectAsync(EndpointPair) |
EndpointPair オブジェクトとして指定されたリモート ネットワーク宛先に接続するために、StreamSocket オブジェクトに対して非同期操作を開始します。 |
| ConnectAsync(EndpointPair, SocketProtectionLevel) |
EndpointPair オブジェクトおよび SocketProtectionLevel 列挙体として指定されたリモート ネットワーク宛先に接続する、StreamSocket オブジェクトに対する非同期操作を開始します。 このメソッドは JavaScript から呼び出しできません。 |
| ConnectAsync(HostName, String) |
StreamSocket オブジェクトに対して非同期操作を開始し、リモート ホスト名とリモート サービス名で指定されたリモート ネットワーク宛先に接続します。 |
| ConnectAsync(HostName, String, SocketProtectionLevel) |
StreamSocket オブジェクトに対して非同期操作を開始し、リモート ホスト名、リモート サービス名、および SocketProtectionLevelで指定されたリモート接続先に接続します。 |
| ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) |
指定したローカル ネットワーク アダプター上の StreamSocket オブジェクトに対して非同期操作を開始し、リモート ホスト名、リモート サービス名、および SocketProtectionLevelで指定されたリモート接続先に接続します。 |
ConnectAsync(EndpointPair)
EndpointPair オブジェクトとして指定されたリモート ネットワーク宛先に接続するために、StreamSocket オブジェクトに対して非同期操作を開始します。
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 の要件
| 要件 | 説明 |
|---|---|
| アプリの機能 |
internetClientServer
privateNetworkClientServer
|
注釈
endpointPair パラメーターで渡された EndpointPair オブジェクトに、LocalHostName プロパティの null が含まれている場合、システムは使用されるローカル IP アドレスを指定します。 endpointPair パラメーターで渡された EndpointPair オブジェクトに、LocalServiceName プロパティの空の文字列が含まれている場合、システムは使用するローカル TCP ポートを提供します。
UWP アプリでは、プロキシが接続を完了するために必要な場合、StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 ローカル ホスト アドレスが指定されている場合、プロキシを介した接続はサポートされていないため、endpointPair パラメーターで渡される LocalHostName プロパティは null である必要があります。 詳細については、
関連項目
- ConnectAsync(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
- EndpointPair
- ソケット操作のタイムアウトを設定する方法
- ソケット操作のタイムアウトを設定する方法
適用対象
ConnectAsync(EndpointPair, SocketProtectionLevel)
EndpointPair オブジェクトおよび SocketProtectionLevel 列挙体として指定されたリモート ネットワーク宛先に接続する、StreamSocket オブジェクトに対する非同期操作を開始します。 このメソッドは 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 の要件
| 要件 | 説明 |
|---|---|
| アプリの機能 |
internetClientServer
privateNetworkClientServer
|
注釈
endpointPair パラメーターで渡された EndpointPair オブジェクトに、LocalHostName プロパティの null が含まれている場合、システムは使用されるローカル IP アドレスを指定します。 endpointPair パラメーターで渡された EndpointPair オブジェクトに、LocalServiceName プロパティの空の文字列が含まれている場合、システムは使用するローカル TCP ポートを提供します。
endpointPair パラメーターで渡された EndpointPair オブジェクトに、LocalServiceName プロパティに null が含まれている場合、エラーが発生します。
[ConnectAsync(EndpointPair, SocketProtectionLevel) メソッドは JavaScript では公開されません。 このメソッドは、ConnectAsync(HostName, String) メソッドと同じ数の引数を持っているため、JavaScript から呼び出すことはできません。
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 アプリでは、プロキシが接続を完了するために必要な場合、StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 ローカル ホスト アドレスが指定されている場合、プロキシを介した接続はサポートされていないため、endpointPair パラメーターで渡される LocalHostName プロパティは null である必要があります。 詳細については、
関連項目
- 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 アドレス。 BLUETOOTH RFCOMM の場合、これは MAC アドレスです。
- remoteServiceName
-
String
Platform::String
winrt::hstring
リモート ネットワーク宛先のサービス名または TCP ポート番号。 BLUETOOTH RFCOMM の場合、これはBluetooth アドレスです。
返品
StreamSocket オブジェクトに対する非同期接続操作。
- 属性
Windows の要件
| 要件 | 説明 |
|---|---|
| アプリの機能 |
internetClientServer
privateNetworkClientServer
|
注釈
remoteHostName と remoteServiceName パラメーター
UWP アプリでは、プロキシが接続を完了するために必要な場合、StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 詳細については、
関連項目
- 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 アドレス。 BLUETOOTH RFCOMM の場合、これは MAC アドレスです。
- remoteServiceName
-
String
Platform::String
winrt::hstring
リモート ネットワーク宛先のサービス名または TCP ポート番号。 BLUETOOTH RFCOMM の場合、これはBluetooth アドレスです。
- protectionLevel
- SocketProtectionLevel
StreamSocket オブジェクトの整合性と暗号化を表す保護レベル。
返品
StreamSocket オブジェクトに対する非同期接続操作。
- 属性
Windows の要件
| 要件 | 説明 |
|---|---|
| アプリの機能 |
internetClientServer
privateNetworkClientServer
|
注釈
remoteHostName と remoteServiceName パラメーター
protectionLevel パラメーターが SSL または TLS を必要とする値に設定されている場合、リモート ネットワーク宛先が SSL または TLS をサポートしていない場合、ソケット接続操作がタイムアウトしないことがあります。 これは、最初の接続操作が成功しても、リモート ホストが SSL ハンドシェイク中に接続を終了しない場合に発生する可能性があります。 このような状況から保護するには、SSL/TLS を要求するときに接続操作にタイムアウトを設定し、タイムアウトが切れた場合は操作を中止する必要があります。 ソケット操作で JavaScript を使用してタイムアウトを設定する方法の詳細については、「ソケット操作 にタイムアウトを設定する方法」を参照してください。 ソケット操作で VB、C#、または C++ を使用してタイムアウトを設定する方法の詳細については、「ソケット操作 にタイムアウトを設定する方法」を参照してください。
UWP アプリでは、プロキシが接続を完了するために必要な場合、StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 詳細については、
関連項目
- 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 アドレス。 BLUETOOTH RFCOMM の場合、これは MAC アドレスです。
- remoteServiceName
-
String
Platform::String
winrt::hstring
リモート ネットワーク宛先のサービス名または TCP ポート番号。 BLUETOOTH RFCOMM の場合、これはBluetooth アドレスです。
- protectionLevel
- SocketProtectionLevel
StreamSocket オブジェクトの整合性と暗号化を表す保護レベル。
- adapter
- NetworkAdapter
StreamSocket オブジェクトの接続操作に使用するローカル ネットワーク アダプター。
返品
StreamSocket オブジェクトに対する非同期接続操作。
- 属性
注釈
[ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) メソッドは、ローカル コンピューターの アダプター パラメーターで指定されたネットワーク インターフェイスと、remoteHostName で指定されたリモート ホスト名とサービス名、および protectionLevel パラメーターで指定された保護レベルを持つ remoteServiceName パラメーターにバインドします。
remoteHostName と remoteServiceName パラメーター
[ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) メソッドで使用される名前解決メカニズムは、ドメイン ネーム システム (DNS) 名前空間の指定されたインターフェイスに制限されます。
指定したネットワーク アダプターの使用はベスト エフォートベースです。 弱いホストモードまたは転送モードで構成されたアダプターを持つシステムでは、指定されたアダプター以外のアダプターを使用できます。
protectionLevel パラメーターが SSL または TLS を必要とする値に設定されている場合、リモート ネットワーク宛先が SSL または TLS をサポートしていない場合、ソケット接続操作がタイムアウトしないことがあります。 これは、最初の接続操作が成功しても、リモート ホストが SSL ハンドシェイク中に接続を終了しない場合に発生する可能性があります。 このような状況から保護するには、SSL/TLS を要求するときに接続操作にタイムアウトを設定し、タイムアウトが切れた場合は操作を中止する必要があります。 ソケット操作で JavaScript を使用してタイムアウトを設定する方法の詳細については、「ソケット操作 にタイムアウトを設定する方法」を参照してください。 ソケット操作で VB、C#、または C++ を使用してタイムアウトを設定する方法の詳細については、「ソケット操作 にタイムアウトを設定する方法」を参照してください。
アプリは、HostName インスタンス (たとえば、NetworkInformation.GetHostNames メソッドを使用) を調べ、Hostname.IPInformation プロパティから IPInformation オブジェクトを取得することで、有効な NetworkAdapter を取得できます。 IPInformation.NetworkAdapter プロパティを使用して、関連付けられている NetworkAdapterを取得できます。
UWP アプリでは、プロキシが接続を完了するために必要な場合、StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 ただし、特定のネットワーク アダプターが選択されている場合、プロキシ経由での接続はサポートされません。 そのため、[ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) メソッドを使用すると、プロキシのサポートは無効になります。 詳細については、
関連項目
- ConnectAsync(EndpointPair)
- ConnectAsync(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- IPInformation
- NetworkAdapter
- ソケット操作のタイムアウトを設定する方法
- ソケット操作のタイムアウトを設定する方法