정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows.Networking.Sockets Namespace

Windows 스토어 앱에 대해 네트워크 통신에 사용할 소켓 및 WebSocket 클래스와 백그라운드에서 수신되는 실시간 네트워크 알림에 사용할 클래스를 제공합니다.

멤버

Windows.Networking.SocketsNamespace에는 다음과 같은 형식의 멤버가 있습니다.

클래스

Windows.Networking.SocketsNamespace에는 다음과 같은 클래스가 있습니다.

클래스Description
ControlChannelTrigger Enables real time notifications to be received in the background for class elements in the Windows.Networking.Sockets namespace and other networking transports.
DatagramSocket Supports network communication using a UDP datagram socket.
DatagramSocketControl Provides socket control data on a DatagramSocket object.
DatagramSocketInformation Provides socket information on a DatagramSocket object.
DatagramSocketMessageReceivedEventArgs Provides data for a MessageReceived event on a DatagramSocket.
MessageWebSocket Supports network communication that allows reading and writing whole messages using a WebSocket.
MessageWebSocketControl Provides socket control data on a MessageWebSocket.
MessageWebSocketInformation Provides socket information on a MessageWebSocket.
MessageWebSocketMessageReceivedEventArgs Provides data for a message received event on a MessageWebSocket.
SocketError Provides socket error status for operations on a DatagramSocket, StreamSocket, or StreamSocketListener.
StreamSocket Supports network communication using a stream socket over TCP or Bluetooth RFCOMM.
StreamSocketControl Provides socket control data on a StreamSocket object.
StreamSocketInformation Provides socket information on a StreamSocket object.
StreamSocketListener Supports listening for an incoming network connection using a TCP stream socket or Bluetooth RFCOMM.
StreamSocketListenerConnectionReceivedEventArgs Provides data for a ConnectionReceived event on a StreamSocketListener object.
StreamSocketListenerControl Provides socket control data on a StreamSocketListener object.
StreamSocketListenerInformation Provides socket information on a StreamSocketListener object.
StreamWebSocket Supports network communication that allows reading and writing streams using a WebSocket.
StreamWebSocketControl Provides socket control data on a StreamWebSocket object.
StreamWebSocketInformation Provides socket information on a StreamWebSocket object.
WebSocketClosedEventArgs Provides data for a closed event on a MessageWebSocket, StreamWebSocket, or IWebSocket object.
WebSocketError Provides socket error status on a MessageWebSocket or StreamWebSocket object.
WebSocketKeepAlive Provides the ability to send a WebSocket protocol keep-alive on a connected WebSocket.

 

열거형

Windows.Networking.SocketsNamespace에는 다음과 같은 열거형이 있습니다.

열거형Description
ControlChannelTriggerResetReason The reason why a ControlChannelTrigger was reset.
ControlChannelTriggerResourceType The resource type used by a control channel trigger.
ControlChannelTriggerStatus Specifies if the system was able to complete configuration of a ControlChannelTrigger object for use by class elements in the Windows.Networking.Sockets and related namespaces.
SocketErrorStatus Specifies status values for a socket operation.
SocketMessageType Specifies the type of a message for a MessageWebSocket object.
SocketProtectionLevel Specifies the level of encryption to use on a StreamSocket object.
SocketQualityOfService Specifies the quality of service for a DatagramSocket or StreamSocket object.
SocketSslErrorSeverity The category of error that occurs on an SSL connection.

 

인터페이스

Windows.Networking.SocketsNamespace에서는 다음과 같은 인터페이스를 정의합니다.

인터페이스Description
IControlChannelTriggerEventDetails An object instantiated by the background broker infrastructure that is used to differentiate control channel triggers.
IControlChannelTriggerResetEventDetails An object instantiated by the background broker infrastructure for a ControlChannelReset event to indicate that a ControlChannelTrigger was reset.
IWebSocket Provides access to network communication that allows reading and writing using a WebSocket.
IWebSocketControl Provides socket control data on an IWebSocket object.
IWebSocketInformation Provides socket information on an IWebSocket object.

 

구조체

Windows.Networking.SocketsNamespace에는 다음과 같은 구조체가 있습니다.

구조체Description
BandwidthStatistics Represents bandwidth information for network data transfer using a StreamSocket, StreamWebSocket, or MessageWebSocket object.
RoundTripTimeStatistics Represents round trip time information for a StreamSocket object.

 

설명

Windows.Networking.Sockets 네임스페이스는 소켓과 웹 소켓을 사용하는 네트워킹을 위한 클래스와 인터페이스를 제공합니다. 기본 클래스에는 다음이 포함됩니다.

  • DatagramSocket - 네트워크 통신에 사용할 UDP 데이터그램 소켓입니다.
  • StreamSocket - RFCOMM을 사용하는 Bluetooth 연결 또는 TCP를 통해 들어오거나 나가는 네트워크 통신에 사용할 스트림 소켓입니다.
  • StreamSocketListener - RFCOMM을 통해 들어오는 Bluetooth 연결 또는 들어오는 TCP 네트워크 연결을 수신하기 위한 스트림 소켓 수신기입니다.
  • MessageWebSocket - 네트워크 통신을 위해 전체 메시지를 읽고 쓰는 메시지 기반 WebSocket입니다.
  • StreamWebSocket - 네트워크 통신을 위해 스트림을 읽고 쓰는 스트림 기반 WebSocket입니다.

또한 이러한 기본 클래스에는 Windows.Networking.Sockets 네임스페이스의 다양한 컨트롤 클래스 및 관련 정보도 있습니다.

예외 처리

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

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

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

Bluetooth 및 Wifi-Direct와 StreamSocket 사용

앱에서 가까운 범위 내에 있는 장치 간의 네트워크 연결에 StreamSocket을 사용할 수도 있습니다. Windows.Networking.Proximity 네임스페이스의 클래스는 주변 장치에 대해 Bluetooth RFCOMM 또는 Wi-Fi Direct를 사용하는 StreamSocket의 네트워크 연결을 지원합니다. Windows.Networking.Proximity 네임스페이스의 PeerFinder 및 관련 클래스를 사용하여 앱은 주변 장치에서 해당 앱의 다른 인스턴스를 검색할 수 있습니다. 그런 다음 앱에서 탭 제스처를 사용하거나 찾아보기를 통해 인접한 피어 앱에 대한 StreamSocket 연결을 만들 수 있습니다. 자세한 내용은 근접 및 탭하기 지원, Windows.Networking.Proximity, PeerFinder, Windows.Devices.Bluetooth.Rfcomm, 근접 연결 샘플Bluetooth Rfcomm 채팅 샘플을 참조하십시오.

네트워크 트리거 사용

Windows.Networking.Sockets 네임스페이스에는 네트워크 컨트롤 채널 트리거에서 백그라운드 네트워킹에 사용할 클래스도 있습니다. ControlChannelTrigger를 통해 앱은 백그라운드에서 실행되는 동안 네트워크 데이터 패킷 및 네트워크 keep-alive를 받을 수 있습니다. 이렇게 하면 앱이 Windows.Networking.Sockets 네임스페이스의 StreamSocket 및 관련 네임스페이스의 기타 네트워크 클래스에 대한 실시간 상태 및 네트워크 알림을 제공할 수 있습니다.

채널 트리거는 오래 실행되는 네트워크 앱에서 네트워크 및 시스템 리소스 사용을 최소화하기 위해 사용합니다(예: 전자 메일 앱). 네트워크 트리거를 사용하면 앱에서 네트워크 연결을 그대로 유지하지만 절전 상태로 일정 기간 동안 저전력 모드로 떨어뜨릴 수 있습니다. 연결 유지 간격을 설정하여 시스템에 앱의 절전 모드 해제 시점을 알릴 수 있습니다. 앱에 대한 패킷이 수신될 경우 알림을 받을 수 있도록 트리거를 설정할 수도 있습니다. 이러한 알림 기능은 모바일 장치에서 장기 실행 네트워크 앱을 사용할 때 배터리 수명을 연장시켜 줍니다.

자세한 내용은 ControlChannelTrigger 클래스 및 배경 연결 옵션을 설정하는 방법을 참조하십시오.

Windows Server 2012에서 소켓 및 WebSockets 사용

Windows Server 2012 및 Windows Server 2012 R2에서 미디어 파운데이션 기능을 사용하도록 설정되지 않은 경우 Windows.Networking.Sockets 네임스페이스에서 클래스의 대부분을 구현하는 Windows.Networking.dll을 로드하지 못합니다. 결과적으로 Media Foundation 기능을 사용하지 않도록 설정하면 Windows.Networking.Sockets 네임스페이스에 있는 소켓 또는 WebSocket을 사용하는 앱은 실패합니다. 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 및 소켓용 클래스는 예상대로 작동합니다.

네트워크 격리와 함께 소켓 및 WebSockets 사용

Windows 8의 네트워크 격리를 사용하면 Windows 스토어 앱의 보안 프로필을 완벽하게 제어할 수 있습니다.

네트워크 격리를 사용하면 적절한 기능을 선택하여 각 앱에 필요한 네트워크 액세스를 정의할 수 있습니다. 적절한 기능이 설정되지 않은 앱은 특정 네트워크 형식(인터넷 또는 가정/직장 네트워크)과 특정 네트워크 요청(클라이언트에서 시작된 아웃바운드 요청 또는 원치 않는 인바운드 요청 및 클라이언트에서 시작된 아웃바운드 요청)을 사용할 수 없습니다. 네트워크 격리를 강제 적용할 수 있으면 앱이 손상된 경우에도 앱에 기능으로 부여된 네트워크 유형, 네트워크 요청 등의 특정 기능을 계속 사용할 수 있습니다. 따라서 다른 앱과 운영 체제에 미칠 수 있는 영향이 크게 줄어듭니다.

Windows 8에서 현재 네트워크 격리를 적용합니다. 적절한 네트워크 기능이 활성화되어 있지 않으면 메서드 호출 또는 Windows.Networking.Sockets 네임스페이스(또는 네트워크 액세스가 필요한 관련 네임스페이스)의 속성에 대한 액세스가 실패할 수 있습니다.

앱의 네트워크 기능은 앱을 빌드할 때 앱 매니페스트에 구성됩니다. 일반적으로 네트워크 기능은 앱을 개발할 때 Visual Studio를 사용하여 추가됩니다. 텍스트 편집기를 사용하여 앱 매니페스트 파일에서 수동으로 설정할 수도 있습니다.

네트워크 격리에 대한 자세한 내용은 네트워크 격리 기능을 구성하는 방법을 참조하십시오.

요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

Windows Server 2012

지원되는 최소 전화

Windows Phone 8

Namespace

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

Metadata

Windows.winmd

DLL

Windows.Networking.dll;
Windows.Networking.Sockets.Pushenabledapplication.dll

Capabilities

ID_CAP_NETWORKING [Windows Phone]

참고 항목

기타 리소스
네트워킹 지원 추가
네트워크 서비스에 연결
WebSocket 서비스에 연결
네트워크 앱에서 예외 처리
네트워크 격리 기능을 구성하는 방법
배경 연결 옵션을 설정하는 방법
근접 및 탭하기 지원
네트워크 연결 문제 해결 및 디버깅
참조
PeerFinder
SetSocketMediaStreamingMode
Windows.Devices.Bluetooth.Rfcomm
Windows.Networking Namespace
Windows.Networking.Connectivity Namespace
Windows.Networking.Proximity
샘플
Bluetooth Rfcomm 채팅 샘플
DatagramSocket 샘플
WebSockets와 연결 샘플
ControlChannelTrigger TCP 소켓 샘플
근접 연결 샘플
StreamSocket 샘플

 

 

표시: