DatagramSocket.GetOutputStreamAsync 메서드

정의

오버로드

GetOutputStreamAsync(EndpointPair)

EndpointPair 개체에서 지정한 원격 네트워크 대상으로 IOutputStream을 가져오는 작업을 시작한 다음, 네트워크 데이터를 보내는 데 사용할 수 있습니다.

GetOutputStreamAsync(HostName, String)

IOutputStream을 원격 호스트 이름 및 원격 서비스 이름으로 지정된 원격 대상으로 가져오는 작업을 시작하여 네트워크 데이터를 보내는 데 사용할 수 있습니다.

GetOutputStreamAsync(EndpointPair)

EndpointPair 개체에서 지정한 원격 네트워크 대상으로 IOutputStream을 가져오는 작업을 시작한 다음, 네트워크 데이터를 보내는 데 사용할 수 있습니다.

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(EndpointPair ^ endpointPair) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair const& endpointPair);
[Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair endpointPair);
function getOutputStreamAsync(endpointPair)
Public Function GetOutputStreamAsync (endpointPair As EndpointPair) As IAsyncOperation(Of IOutputStream)

매개 변수

endpointPair
EndpointPair

로컬 호스트 이름 또는 로컬 IP 주소, 로컬 서비스 이름 또는 로컬 UDP 포트, 원격 호스트 이름 또는 원격 IP 주소, 원격 서비스 이름 또는 원격 UDP 포트를 나타내는 엔드포인트 쌍입니다.

반환

비동기 작업을 나타내는 IOutputStream 입니다.

특성

Windows 요구 사항

앱 기능
ID_CAP_NETWORKING [Windows Phone]

설명

DatagramSocket의 GetOutputStreamAsync(EndpointPair) 메서드는 EndpointPair 개체로 지정된 원격 네트워크 대상으로 IOutputStream을 가져오는 작업을 시작하는 데 사용됩니다. 그런 다음 IOutputStream 을 사용하여 원격 대상으로 데이터를 보낼 수 있습니다.

GetOutputStreamAsync(EndpointPair) 메서드는 성공적으로 완료되면 IOutputStream 을 반환합니다. 해당 스트림에 쓰면 데이터그램이 지정된 원격 호스트 및 서비스 이름으로 전송됩니다. IOutputStream은 항상 ConnectAsync 메서드에 지정된 원격 호스트 이름 및 원격 서비스 이름으로 전송됩니다.

endpointPair 매개 변수에 전달된 EndpointPairRemoteHostName 속성에는 원격 대상의 호스트 이름 또는 IP 주소가 포함될 수 있습니다. endpointPair 매개 변수에 전달된 EndpointPairRemoteServiceName 속성에는 원격 대상의 서비스 이름 또는 UDP 포트가 포함될 수 있습니다. RemoteHostName 속성에 호스트 이름이 포함된 경우 GetOutputStreamAsync(EndpointPair) 메서드를 사용하면 원격 호스트 이름의 이름 확인이 발생합니다. RemoteServiceName 속성에 서비스 이름이 포함된 경우 GetOutputStreamAsync 메서드는 UDP 포트에 대한 원격 서비스 이름을 확인합니다.

EndpointPair 매개 변수에 전달된 EndpointPair 개체에 RemoteHostNameRemoteServiceName 속성을 제공해야 합니다. RemoteHostNamenull이거나 RemoteServiceNamenull이거나 빈 문자열이면 오류가 발생합니다.

endpointPair 매개 변수에 전달된 EndpointPair 개체에 null LocalHostName 속성이 포함된 경우 시스템은 사용할 로컬 IP 주소를 제공합니다. endpointPair 매개 변수에 전달된 EndpointPair 개체에 LocalServiceName 속성에 대한 빈 문자열이 포함된 경우 시스템은 사용할 로컬 UDP 포트를 제공합니다.

DatagramSocket을 사용하여 UDP 데이터그램을 원격 네트워크 대상으로 보내는 두 가지 방법이 있습니다.

GetOutputStreamAsync 메서드를 사용하면 앱이 DatagramSocket 개체를 사용하여 UDP 데이터그램을 여러 네트워크 대상으로 보낼 수 있습니다. GetOutputStreamAsync(EndpointPair) 메서드가 호출될 때마다 앱은 endpointPair 매개 변수에서 RemoteHostNameRemoteServiceName 멤버에 대해 서로 다른 값을 설정할 수 있습니다.

DatagramSocket 개체의 모든 원격 엔드포인트에서 데이터를 받으려면 앱이 MessageReceived 이벤트를 이벤트 처리기에 할당한 다음 BindEndpointAsync 또는 BindServiceNameAsync 메서드를 호출하여 DatagramSocket을 로컬 서비스 이름 또는 UDP 포트에 바인딩한 후 GetOutputStreamAsync 메서드를 호출해야 합니다. 바인딩 또는 연결 작업 전에 MessageReceived 이벤트 처리기를 설정해야 합니다. 그렇지 않으면 오류가 발생합니다.

일반적인 작업 순서는 다음과 같습니다.

  1. DatagramSocket을 만듭니다.
  2. Control 속성을 사용하여 DatagramSocketControl 개체를 검색하고 고급 컨트롤을 설정합니다. 이 단계는 일반적으로 대부분의 앱에서 필요하지 않습니다.
  3. MessageReceived 이벤트를 이벤트 처리기에 할당합니다.
  4. GetOutputStreamAsync(EndpointPair) 메서드를 호출하여 OutputStream 을 가져와서 원격 엔드포인트로 데이터를 보냅니다. 또한 GetOutputStreamAsync(EndpointPair) 메서드는 EndpointPair 매개 변수를 사용하여 DatagramSocket을 로컬 서비스 이름 또는 UDP 포트 및 로컬 호스트 이름 또는 IP 주소에 바인딩합니다.
  5. 원격 엔드포인트의 메시지가 도착할 때마다 MessageReceived 이벤트 처리기가 호출됩니다. GetOutputStreamAsync 메서드는 앱이 BindEndpointAsync 또는 BindServiceNameAsync 메서드를 사용하여 로컬 서비스 이름 또는 UDP 포트를 바인딩하는 경우 ConnectAsync 메서드와도 다릅니다. GetOutputStreamAsync 메서드를 사용하면 앱은 로컬 서비스 이름 또는 UDP 포트로 전송된 모든 원격 대상에서 패킷을 수신합니다. ConnectAsync 메서드를 사용하면 앱은 ConnectAsync 메서드에 매개 변수로 전달된 원격 대상의 패킷만 받습니다.

BindServiceNameAsync(String, NetworkAdapter) 메서드를 사용하여 GetOutputStreamAsync(EndpointPair) 메서드를 호출하기 전에 네트워크 어댑터를 지정할 수 있습니다. 지정된 어댑터가 바인딩 작업에 사용됩니다. BindServiceNameAsync(String, NetworkAdapter) 및 GetOutputStreamAsync(EndpointPair)에 전달된 endpointPair 매개 변수를 호출한 후 LocalHostName을 지정하면 GetOutputStreamAsync(EndpointPair) 메서드가 실패합니다.

추가 정보

적용 대상

GetOutputStreamAsync(HostName, String)

IOutputStream을 원격 호스트 이름 및 원격 서비스 이름으로 지정된 원격 대상으로 가져오는 작업을 시작하여 네트워크 데이터를 보내는 데 사용할 수 있습니다.

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName);
[Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName remoteHostName, string remoteServiceName);
function getOutputStreamAsync(remoteHostName, remoteServiceName)
Public Function GetOutputStreamAsync (remoteHostName As HostName, remoteServiceName As String) As IAsyncOperation(Of IOutputStream)

매개 변수

remoteHostName
HostName

원격 호스트 이름 또는 원격 IP 주소입니다.

remoteServiceName
String

Platform::String

winrt::hstring

원격 서비스 이름 또는 원격 UDP 포트입니다.

반환

비동기 작업을 나타내는 IOutputStream 입니다.

특성

Windows 요구 사항

앱 기능
ID_CAP_NETWORKING [Windows Phone]

설명

DatagramSocket의 [GetOutputStreamAsync(HostName, String) 메서드는 원격 호스트 이름 및 원격 서비스 이름으로 지정된 원격 네트워크 대상으로 IOutputStream을 가져오는 작업을 시작하는 데 사용됩니다. 그런 다음 IOutputStream 을 사용하여 원격 대상으로 데이터를 보낼 수 있습니다.

[GetOutputStreamAsync(HostName, String) 메서드는 성공적으로 완료되면 IOutputStream 을 반환합니다. 해당 스트림에 쓰면 데이터그램이 지정된 원격 호스트 및 서비스 이름으로 전송됩니다. IOutputStream은 항상 ConnectAsync 메서드에 지정된 원격 호스트 이름 및 원격 서비스 이름으로 전송됩니다.

remoteHostName 매개 변수는 원격 대상의 호스트 이름 또는 IP 주소를 포함할 수 있습니다. remoteServiceName 매개 변수는 원격 대상의 서비스 이름 또는 UDP 포트를 포함할 수 있습니다. remoteHostName 매개 변수에 호스트 이름이 포함된 경우 [GetOutputStreamAsync(HostName, String) 메서드는 원격 호스트 이름의 이름을 확인합니다. remoteServiceName 매개 변수에 서비스 이름이 포함된 경우 [GetOutputStreamAsync(HostName, String) 메서드는 UDP 포트에 대한 원격 서비스 이름을 확인합니다.

remoteHostNameremoteServiceName 매개 변수를 제공해야 합니다. remoteHostName 매개 변수가 null이거나 remoteServiceName 매개 변수가 null이거나 빈 문자열인 경우 오류가 발생합니다.

DatagramSocket을 사용하여 UDP 데이터그램을 원격 네트워크 대상으로 보내는 두 가지 방법이 있습니다.

  • GetOutputStreamAsync 메서드 중 하나를 사용합니다.
  • ConnectAsync 메서드 중 하나를 성공적으로 호출한 후 OutputStream 속성을 DataWriter 개체에 전달하고 DataWriter 개체에서 메서드를 사용하여 데이터를 보냅니다.

GetOutputStreamAsync 메서드를 사용하면 앱이 DatagramSocket 개체를 사용하여 UDP 데이터그램을 여러 네트워크 대상으로 보낼 수 있습니다. [GetOutputStreamAsync(HostName, String) 메서드가 호출될 때마다 앱은 remoteHostNameremoteServiceName 매개 변수에 대해 다른 값을 설정할 수 있습니다.

ConnectAsync 메서드를 사용하면 앱이 DatagramSocket 개체를 사용하여 UDP 데이터그램을 단일 네트워크 대상으로 보낼 수 있습니다.

DatagramSocket 개체의 모든 원격 엔드포인트에서 데이터를 받으려면 앱이 MessageReceived 이벤트를 이벤트 처리기에 할당한 다음 BindEndpointAsync 또는 BindServiceNameAsync 메서드를 호출하여 DatagramSocket을 로컬 서비스 이름 또는 UDP 포트에 바인딩한 후 GetOutputStreamAsync 메서드를 호출해야 합니다. 바인딩 또는 연결 작업 전에 MessageReceived 이벤트 처리기를 설정해야 합니다. 그렇지 않으면 오류가 발생합니다.

일반적인 작업 순서는 다음과 같습니다.

  1. DatagramSocket을 만듭니다.
  2. Control 속성을 사용하여 DatagramSocketControl 개체를 검색하고 고급 컨트롤을 설정합니다. 이 단계는 일반적으로 대부분의 앱에서 필요하지 않습니다.
  3. MessageReceived 이벤트를 이벤트 처리기에 할당합니다.
  4. DatagramSocket을 로컬 서비스 이름 또는 UDP 포트에 바인딩합니다.
  5. 원격 엔드포인트의 메시지가 도착할 때마다 MessageReceived 이벤트 처리기가 호출됩니다.
  6. GetOutputStreamAsync 메서드를 호출하여 OutputStream 을 가져와서 원격 엔드포인트로 데이터를 보냅니다. MessageReceived 이벤트 처리기의 DatagramSocketMessageReceivedEventArgs에 포함된 정보를 사용하여 특정 들어오는 메시지를 작성한 원격 엔드포인트로 OutputStream을 설정할 수 있습니다. GetOutputStreamAsync 메서드는 앱이 BindEndpointAsync 또는 BindServiceNameAsync 메서드를 사용하여 로컬 서비스 이름 또는 UDP 포트에 바인딩하는 경우 ConnectAsync 메서드와도 다릅니다. GetOutputStreamAsync 메서드를 사용하면 앱은 로컬 서비스 이름 또는 UDP 포트로 전송된 모든 원격 대상에서 패킷을 수신합니다. ConnectAsync 메서드를 사용하면 앱은 ConnectAsync 메서드에 매개 변수로 전달된 원격 대상의 패킷만 받습니다.

추가 정보

적용 대상