내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

DatagramSocket Class

UDP 데이터그램 소켓을 사용한 네트워크 통신을 지원합니다.

구문


var datagramSocket = new Windows.Networking.Sockets.DatagramSocket();

특성

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

멤버

DatagramSocket클래스에는 다음과 같은 형식의 멤버가 있습니다.

생성자

DatagramSocket클래스에는 다음과 같은 생성자가 있습니다.

생성자Description
DatagramSocket Creates a new DatagramSocket object.

 

이벤트

DatagramSocket클래스에는 다음과 같은 이벤트가 있습니다.

이벤트Description
MessageReceived An event that indicates that a message was received on the DatagramSocket object.

 

메서드

The DatagramSocket 클래스 - 이러한 메서드가 있습니다. C#, Visual Basic 및 C++에서는 다음 위치의 메서드도 상속합니다. Object 클래스.

메서드Description
BindEndpointAsync Starts a bind operation on a DatagramSocket to a local hostname and a local service name.
BindServiceNameAsync(String) Starts a bind operation on a DatagramSocket to a local service name.
BindServiceNameAsync(String, NetworkAdapter) Starts a bind operation on a DatagramSocket to a local service name and specific network interface.
Close [C++, JavaScript]Closes the DatagramSocket object.
ConnectAsync(EndpointPair) Starts a connect operation on a DatagramSocket to a remote network destination specified as an EndpointPair object.
ConnectAsync(HostName, String) Starts a connect operation on a DatagramSocket to a remote destination specified by a remote hostname and a remote service name.
Dispose [C#, VB]Performs tasks associated with freeing, releasing, or resetting unmanaged resources.
GetEndpointPairsAsync(HostName, String) Gets a list of EndpointPair objects based on a remote hostname and remote service name that can be used to send datagrams to a remote network destination.
GetEndpointPairsAsync(HostName, String, HostNameSortOptions) Gets a list of EndpointPair objects based on a remote hostname and remote service name and the sort order to be used.
GetOutputStreamAsync(EndpointPair) Starts an operation to get an IOutputStream to a remote network destination specified by an EndpointPair object that can then be used to send network data.
GetOutputStreamAsync(HostName, String) Starts an operation to get an IOutputStream to a remote destination specified by a remote hostname and a remote service name that can then be used to send network data.
JoinMulticastGroup Joins a DatagramSocket object to a multicast group.

 

속성

DatagramSocket클래스 - 이러한 속성이 있습니다.

속성사용 권한Description

Control

읽기 전용Gets socket control data on a DatagramSocket object.

Information

읽기 전용Gets socket information on the local and remote hostnames and local and remote service names for the DatagramSocket object.

OutputStream

읽기 전용Gets the output stream to write to the remote host.

 

설명

DatagramSocket 클래스는 UDP 데이터그램 소켓을 사용한 네트워크 통신을 지원합니다. DatagramSocket 개체는 UDP 패킷을 보내는 클라이언트 앱 또는 들어오는 UDP 데이터를 수신하는 서버 앱에 사용할 수 있습니다.

DatagramSocket 개체를 사용하여 데이터를 받으려면 여러 단계가 필요합니다. 앱에서 먼저 MessageReceived 이벤트를 이벤트 처리기에 할당합니다. 그런 다음 앱이 BindEndpointAsync 또는 BindServiceNameAsync 메서드를 호출하여 DatagramSocket를 로컬 서비스 이름 또는 UDP 포트에 바인딩합니다. 다음에는 앱이 ConnectAsync 메서드를 호출합니다. 연결 작업 후에 이벤트 처리기 및 바인딩 작업이 발생할 경우 오류가 발생합니다.

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

  • DatagramSocket을 만듭니다.
  • Control 속성을 사용하여 DatagramSocketControl 개체를 검색하고 고급 컨트롤을 설정합니다. 이 단계는 대부분의 앱에서는 일반적으로 필요가 없습니다.
  • MessageReceived 이벤트를 이벤트 처리기에 할당합니다.
  • 로컬 서비스 이름 또는 UDP 포트에 DatagramSocket을 바인딩합니다.
  • ConnectAsync 메서드를 호출하여 DatagramSocket을 원격 끝점에 바인딩합니다. 앱에서 DatagramSocket 개체의 원격 끝점에서 데이터를 받으려는 경우 ConnectAsync 메서드를 사용하면 특정 원격 끝점으로 DatagramSocket을 바인딩하므로 사용해서는 안 됩니다. 그 대신 BindServiceNameAsync 또는 BindEndpointAsync 메서드를 사용해야 합니다.

이 클래스는 멀티캐스트 그룹에 조인하고 UDP 패킷을 멀티캐스트 그룹에 보내는 데 사용할 수도 있습니다.

예외 처리

DatagramSocket 클래스에서 비동기 메서드를 호출할 때 예외를 처리하는 코드를 작성해야 합니다. 매개 변수 유효성 검사 오류, 이름 확인 실패 및 네트워크 오류에서 예외가 발생할 수 있습니다. 언제든지 네트워크 오류(예: 연결 끊어짐, 연결 실패, 서버 실패)의 예외가 발생할 수 있습니다. 이러한 오류가 발생하면 예외가 throw됩니다. 앱에서 예외를 처리하지 않을 경우 런타임에 의해 전체 앱이 종료될 수 있습니다.

Windows.Networking.Sockets 네임스페이스에는 소켓을 사용할 때 오류 처리에 편리한 도우미 메서드 및 열거형이 있습니다. 앱에서 특정 네트워크 예외를 다르게 처리할 때 유용할 수 있습니다. 앱은 매개 변수 유효성 검사 오류에 대한 예외의 HRESULT를 사용하여 예외를 발생시키는 오류에 대한 자세한 정보를 볼 수 있습니다.

가능한 예외 및 예외 처리 방법에 대한 자세한 내용은 네트워크 앱의 예외 처리를 참조하십시오.

Windows Server 2012에서 DatagramSocket 사용

Windows Server 2012 및 Windows Server 2012 R2에서 미디어 파운데이션 기능을 사용하도록 설정되지 않은 경우 Windows.Networking.Sockets 네임스페이스에서 클래스의 대부분을 구현하는 Windows.Networking.dll을 로드하지 못합니다. 결과적으로 Media Foundation 기능을 사용하지 않도록 설정하면 Windows.Networking.Sockets 네임스페이스에 있는 DatagramSocket 및 관련 소켓 클래스를 사용하는 앱은 실패합니다. Windows Server 2012 또는 Windows Server 2012 R2를 설치하면 기본적으로 미디어 파운데이션 기능이 해제되어 있습니다.

서버 관리자를 사용하거나 명령 프롬프트나 스크립트에 다음 텍스트를 입력하여 Windows Server 2012 또는 Windows Server 2012 R2에서 Media Foundation 기능을 활성화할 수 있습니다.

dism /online /enable-feature /featurename:ServerMediaFoundation

Media Foundation 기능을 사용하도록 설정한 후 다시 부팅할 것인지 묻는 메시지가 표시됩니다. 컴퓨터를 다시 시작하면 Windows.Networking.Sockets 네임스페이스의 WebSocket 및 소켓용 클래스는 예상대로 작동합니다.

요구 사항

지원되는 최소 클라이언트

Windows 8 [Windows 스토어 앱, 데스크톱 앱]

지원되는 최소 서버

Windows Server 2012 [Windows 스토어 앱, 데스크톱 앱]

지원되는 최소 전화

Windows Phone 8

Namespace

Windows.Networking.Sockets
Windows::Networking::Sockets [C++]

Metadata

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

internetClient
privateNetworkClientServer
ID_CAP_NETWORKING [Windows Phone]

참고 항목

기타 리소스
네트워크 서비스에 연결(JavaScript 및 HTML을 사용하는 Windows 스토어 앱)
네트워크 서비스에 연결(C#/VB/C++ 및 XAML을 사용하는 Windows 스토어 앱)
네트워크 앱에서 예외 처리
고급 소켓 컨트롤을 사용하는 방법(JavaScript 및 HTML을 사용하는 Windows 스토어 앱)
고급 소켓 컨트롤을 사용하는 방법(C#/VB/C++ 및 XAML을 사용하는 Windows 스토어 앱)
빠른 시작: 데이터그램 소켓(JavaScript 및 HTML을 사용하는 Windows 스토어 앱)을 사용하여 네트워크 리소스에 연결
네트워크 연결 문제 해결 및 디버깅
참조
DatagramSocketControl
DatagramSocketInformation
DatagramSocketMessageReceivedEventArgs
고급 소켓 컨트롤을 사용하는 방법
IClosable
Object
SetSocketMediaStreamingMode

 

 

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft