StreamSocket.ConnectAsync 메서드

정의

오버로드

ConnectAsync(EndpointPair)

EndpointPair 개체로 지정된 원격 네트워크 대상에 연결하기 위해 StreamSocket 개체에 대한 비동기 작업을 시작합니다.

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)

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

로컬 호스트 이름 또는 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(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(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

설명

remoteHostNameremoteServiceName 매개 변수를 제공해야 합니다. 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

설명

remoteHostNameremoteServiceName 매개 변수를 제공해야 합니다. 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) 메서드는 로컬 컴퓨터의 어댑터 매개 변수에 지정된 네트워크 인터페이스와 protectionLevel 매개 변수에 지정된 보호 수준을 사용하여 remoteHostNameremoteServiceName 매개 변수에 지정된 원격 호스트 이름 및 서비스 이름에 바인딩됩니다.

remoteHostNameremoteServiceName 매개 변수를 제공해야 합니다. remoteHostNamenull이거나 remoteServiceNamenull이거나 빈 문자열인 경우 오류가 발생합니다. 어댑터 매개 변수가 null이면 오류가 발생합니다.

[ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) 메서드에서 사용하는 이름 확인 메커니즘은 DNS(도메인 이름 시스템) 네임스페이스에 대해 지정된 인터페이스로 제한됩니다.

지정된 네트워크 어댑터를 사용하는 것이 가장 좋습니다. 어댑터가 약한 호스트 또는 전달 모드로 구성된 시스템은 지정된 어댑터 이외의 어댑터를 사용할 수 있습니다.

protectionLevel 매개 변수를 SSL 또는 TLS가 필요한 값으로 설정하면 원격 네트워크 대상이 SSL 또는 TLS를 지원하지 않는 경우 소켓 연결 작업이 시간 초과되지 않을 수 있습니다. 초기 연결 작업이 성공하지만 원격 호스트가 SSL 핸드셰이크 중에 연결을 종료하지 않는 경우에 발생할 수 있습니다. 이 상황을 방지하려면 앱이 SSL/TLS를 요청할 때 연결 작업에 시간 제한을 설정하고 시간 제한이 만료되면 작업을 중단해야 합니다. 소켓 작업에서 JavaScript를 사용하여 시간 제한을 설정하는 방법에 대한 자세한 내용은 소켓 작업에서 시간 제한을 설정하는 방법을 참조하세요. 소켓 작업에서 VB, C#또는 C++를 사용하여 시간 제한을 설정하는 방법에 대한 자세한 내용은 소켓 작업에서 시간 제한을 설정하는 방법을 참조하세요 .

앱은 HostName instance 검사하고(예: NetworkInformation.GetHostNames 메서드 사용) Hostname.IPInformation 속성에서 IPInformation 개체를 검색하여 유효한 NetworkAdapter를 검색할 수 있습니다. IPInformation.NetworkAdapter 속성을 사용하여 연결된 NetworkAdapter를 검색할 수 있습니다.

UWP 앱에서 StreamSocket 클래스는 연결을 완료하기 위해 프록시가 필요한 경우 원격 엔드포인트에 대한 연결을 지원합니다. 프록시에 대한 이러한 지원은 앱에 자동적이고 투명합니다. 그러나 특정 네트워크 어댑터를 선택하면 프록시를 통한 연결이 지원되지 않습니다. 따라서 [ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) 메서드를 사용할 때 프록시 지원을 사용할 수 없습니다. 자세한 내용은 StreamSocket 클래스 참조의 프록시 지원에 대한 설명을 참조하세요.

Windows Phone 8.x 앱에서 StreamSocket 클래스는 프록시에 대한 자동 지원을 제공하지 않습니다.

추가 정보

적용 대상