Поделиться через


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 , содержит значение NULL для свойства LocalHostName , система предоставит используемый локальный IP-адрес. Если объект EndpointPair, передаваемый в параметре endpointPair , содержит пустую строку для свойства LocalServiceName , система предоставит используемый локальный TCP-порт.

В приложении UWP класс StreamSocket поддерживает подключение к удаленной конечной точке, когда для завершения подключения требуются прокси-серверы. Эта поддержка прокси-серверов является автоматической и прозрачной для приложения. Подключение через прокси-серверы не поддерживается, если указан адрес локального узла, поэтому свойство LocalHostName , передаваемое в параметре endpointPair , должно иметь значение NULL. Дополнительные сведения см. в примечаниях к поддержке прокси-серверов в справочнике по классам StreamSocket .

В приложении Windows Phone версии 8.x класс 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

Возможности приложения
ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Комментарии

Если объект EndpointPair, передаваемый в параметре endpointPair , содержит значение NULL для свойства LocalHostName , система предоставит используемый локальный IP-адрес. Если объект EndpointPair, передаваемый в параметре endpointPair , содержит пустую строку для свойства LocalServiceName , система предоставит используемый локальный TCP-порт.

Если объект EndpointPair, передаваемый в параметре endpointPair , содержит значение NULL для свойства LocalServiceName , возникнет ошибка.

Метод [ConnectAsync(EndpointPair, SocketProtectionLevel) не предоставляется в JavaScript. Этот метод нельзя вызвать из JavaScript, так как он имеет то же количество аргументов, что и метод ConnectAsync(HostName, String).

Приложения, написанные на языке JavaScript, не могут подключать StreamSocket с помощью EndpointPair напрямую с помощью SSL. Чтобы подключить EndpointPair с помощью 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. Это может произойти, если начальная операция подключения выполнена успешно, но удаленная конечная точка не завершает подключение во время подтверждения SSL. Чтобы защититься от этой ситуации, приложение должно установить время ожидания для операции подключения при запросе SSL/TLS и прервать операцию, если истечет время ожидания. Дополнительные сведения о настройке времени ожидания с помощью JavaScript для операций сокета см. в разделе Настройка времени ожидания для операций сокета . Дополнительные сведения о настройке времени ожидания с помощью VB, C# или C++ для операций сокета см. в статье Настройка времени ожидания для операций сокета .

В приложении UWP класс StreamSocket поддерживает подключение к удаленной конечной точке, когда для завершения подключения требуются прокси-серверы. Эта поддержка прокси-серверов является автоматической и прозрачной для приложения. Подключение через прокси-серверы не поддерживается, если указан адрес локального узла, поэтому свойство LocalHostName , передаваемое в параметре endpointPair , должно иметь значение NULL. Дополнительные сведения см. в примечаниях к поддержке прокси-серверов в справочнике по классам StreamSocket .

В приложении Windows Phone версии 8.x класс 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-адрес удаленного сетевого назначения. Для 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(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(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++ для операций с сокетами см. в разделе Установка времени ожидания для операций сокета .

Приложение может получить допустимый NetworkAdapter , проверив экземпляр HostName (например, с помощью метода NetworkInformation.GetHostNames ) и извлекая объект IPInformation из свойства Hostname.IPInformation . Свойство IPInformation.NetworkAdapter можно использовать для получения связанного объекта NetworkAdapter.

В приложении UWP класс StreamSocket поддерживает подключение к удаленной конечной точке, когда для завершения подключения требуются прокси-серверы. Эта поддержка прокси-серверов является автоматической и прозрачной для приложения. Однако подключение через прокси-серверы не поддерживается при выборе определенного сетевого адаптера. Поэтому поддержка прокси-сервера отключена при использовании метода [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter). Дополнительные сведения см. в примечаниях к поддержке прокси-серверов в справочнике по классу StreamSocket .

В приложении Windows Phone 8.x класс StreamSocket не обеспечивает автоматическую поддержку прокси-серверов.

См. также раздел

Применяется к