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
ローカル ホスト名または IP アドレス、ローカル サービス名または TCP ポート、リモート ホスト名またはリモート IP アドレス、リモート ネットワーク宛先のリモート サービス名またはリモート TCP ポートを指定する EndpointPair オブジェクト。
戻り値
StreamSocket オブジェクトに対する非同期接続操作。
- 属性
Windows の要件
アプリの機能 |
ID_CAP_NETWORKING [Windows Phone]
internetClientServer
privateNetworkClientServer
|
注釈
endpointPair パラメーターで渡された EndpointPair オブジェクトに LocalHostName プロパティの null が含まれている場合、システムは使用するローカル IP アドレスを指定します。 endpointPair パラメーターで渡された EndpointPair オブジェクトに LocalServiceName プロパティの空の文字列が含まれている場合、システムは使用されるローカル TCP ポートを提供します。
UWP アプリでは、接続を完了するためにプロキシが必要な場合、 StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 ローカル ホスト アドレスが指定されている場合、プロキシ経由での接続はサポートされないため、endpointPair パラメーターで渡される LocalHostName プロパティは null である必要があります。 詳細については、StreamSocket クラス リファレンスのプロキシのサポートに関する解説を参照してください。
Windows Phone 8.x アプリでは、StreamSocket クラスはプロキシの自動サポートを提供しません。
こちらもご覧ください
- 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
ローカル ホスト名または IP アドレス、ローカル サービス名または TCP ポート、リモート ホスト名またはリモート IP アドレス、リモート ネットワーク宛先のリモート サービス名またはリモート TCP ポートを指定する EndpointPair オブジェクト。
- 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 では公開されません。 このメソッドは 、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 である必要があります。 詳細については、StreamSocket クラス リファレンスのプロキシのサポートに関する解説を参照してください。
Windows Phone 8.x アプリでは、StreamSocket クラスはプロキシの自動サポートを提供しません。
こちらもご覧ください
- 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 の要件
アプリの機能 |
ID_CAP_NETWORKING [Windows Phone]
internetClientServer
privateNetworkClientServer
|
注釈
remoteHostName パラメーターと remoteServiceName パラメーターを指定する必要があります。 remoteHostName が null であるか、remoteServiceName が null または空の文字列である場合は、エラーが発生します。
UWP アプリでは、接続を完了するためにプロキシが必要な場合、 StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 詳細については、StreamSocket クラス リファレンスのプロキシのサポートに関する解説を参照してください。
Windows Phone 8.x アプリでは、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 の要件
アプリの機能 |
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 アプリでは、接続を完了するためにプロキシが必要な場合、 StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 詳細については、StreamSocket クラス リファレンスのプロキシのサポートに関する解説を参照してください。
Windows Phone 8.x アプリでは、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 パラメーターと 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++ を使用してタイムアウトを設定する方法の詳細については、「ソケット操作で タイムアウトを設定する方法 」を参照してください。
アプリは、HostName インスタンスを検査し (たとえば、NetworkInformation.GetHostNames メソッドを使用して)、Hostname.IPInformation プロパティから IPInformation オブジェクトを取得することで、有効な NetworkAdapter を取得できます。 IPInformation.NetworkAdapter プロパティを使用して、関連付けられている NetworkAdapter を取得できます。
UWP アプリでは、接続を完了するためにプロキシが必要な場合、 StreamSocket クラスはリモート エンドポイントへの接続をサポートします。 このプロキシのサポートは、アプリに対して自動的かつ透過的です。 ただし、特定のネットワーク アダプターが選択されている場合、プロキシ経由での接続はサポートされません。 そのため、[ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) メソッドを使用すると、プロキシのサポートは無効になります。 詳細については、StreamSocket クラス リファレンスのプロキシのサポートに関する解説を参照してください。
Windows Phone 8.x アプリでは、StreamSocket クラスはプロキシの自動サポートを提供しません。
こちらもご覧ください
- ConnectAsync(EndpointPair)
- ConnectAsync(HostName, String)
- ConnectAsync(EndpointPair, SocketProtectionLevel)
- ConnectAsync(HostName, String, SocketProtectionLevel)
- IPInformation
- NetworkAdapter
- ソケット操作でタイムアウトを設定する方法
- ソケット操作でタイムアウトを設定する方法