Windows.Networking.Sockets 네임스페이스
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
UWP 앱의 백그라운드에서 수신된 실시간 네트워크 알림에 대한 네트워크 통신 및 클래스에 사용할 소켓 및 WebSockets 클래스를 제공합니다.
클래스
| ControlChannelTrigger |
TCP 연결을 설정하고 들어오는 트래픽에 대한 알림을 받으려는 개체에 대해 백그라운드에서 실시간 알림을 받을 수 있도록 합니다. ControlChannelTrigger 를 사용하기 전에 호출 **BackgroundExecutionManager.RequestAccessAsync** 합니다. 참고 이 클래스는 Windows Phone에서 지원되지 않습니다. |
| DatagramSocket |
UDP 데이터그램 소켓을 사용하여 네트워크 통신을 지원합니다. 코드 예제는 소켓을 참조하세요. |
| DatagramSocketControl |
개체에 소 DatagramSocket 켓 제어 데이터를 제공합니다. |
| DatagramSocketInformation |
개체에 대한 DatagramSocket 소켓 정보를 제공합니다. |
| DatagramSocketMessageReceivedEventArgs |
에서 이벤트에 DatagramSocket대한 MessageReceived 데이터를 제공합니다. |
| MessageWebSocket |
WebSocket을 사용하여 전체 메시지를 읽고 쓸 수 있는 네트워크 통신을 지원합니다. |
| MessageWebSocketControl |
에 MessageWebSocket소켓 제어 데이터를 제공합니다. |
| MessageWebSocketInformation |
에 대한 MessageWebSocket소켓 정보를 제공합니다. |
| MessageWebSocketMessageReceivedEventArgs |
에서 받은 메시지 이벤트에 대한 MessageWebSocket데이터를 제공합니다. |
| ServerMessageWebSocket |
웹 서버가 소유한 WebSocket 개체를 사용하여 전체 메시지를 읽고 쓸 수 있는 네트워크 통신을 지원합니다. 임의의 WebSocket 연결에 등록할 수 없습니다. 대신 , ServerMessageWebSocket 의 인스턴스는 WDP( Windows 디바이스 포털 )와 같은 시스템 코드에 의해 만들어집니다. |
| ServerMessageWebSocketControl |
에 소 ServerMessageWebSocket켓 제어 데이터를 제공합니다. |
| ServerMessageWebSocketInformation |
에 대한 ServerMessageWebSocket소켓 정보를 제공합니다. |
| ServerStreamWebSocket |
웹 서버가 소유한 WebSocket 개체를 사용하여 스트림을 읽고 쓸 수 있는 네트워크 통신을 지원합니다. 임의의 WebSocket 연결에 등록할 수 없습니다. 대신 ServerStreamWebSocket 의 인스턴스는 WDP( Windows Device Portal )와 같은 시스템 코드에 의해 만들어집니다. |
| ServerStreamWebSocketInformation |
개체에 대한 ServerStreamWebSocket 소켓 정보를 제공합니다. |
| SocketActivityContext |
앱과 소켓 중개 서비스 간에 소켓의 소유권을 전송하는 동안 소켓과 연결된 컨텍스트입니다. |
| SocketActivityInformation |
소켓 브로커에서 전송된 소켓에 대한 정보를 제공합니다. |
| SocketActivityTriggerDetails |
백그라운드 브로커 인프라에 의해 인스턴스화되고 앱이 발생할 때 세부 정보를 검색하는 데 사용하는 개체입니다 SocketActivityTrigger . |
| SocketError |
또는 StreamSocketListener에 대한 DatagramSocketStreamSocket작업에 대한 소켓 오류 상태를 제공합니다. |
| StreamSocket |
UWP 앱에서 TCP 또는 Bluetooth RFCOMM을 통해 스트림 소켓을 사용하여 네트워크 통신을 지원합니다. |
| StreamSocketControl |
개체에 소 StreamSocket 켓 제어 데이터를 제공합니다. |
| StreamSocketInformation |
개체에 대한 StreamSocket 소켓 정보를 제공합니다. |
| StreamSocketListener |
TCP 스트림 소켓 또는 Bluetooth RFCOMM을 사용하여 들어오는 네트워크 연결에 대한 수신 대기를 지원합니다. |
| StreamSocketListenerConnectionReceivedEventArgs |
개체의 ConnectionReceived 이벤트에 대한 StreamSocketListener 데이터를 제공합니다. |
| StreamSocketListenerControl |
개체에 소 StreamSocketListener 켓 제어 데이터를 제공합니다. |
| StreamSocketListenerInformation |
개체에 대한 StreamSocketListener 소켓 정보를 제공합니다. |
| StreamWebSocket |
WebSocket을 사용하여 스트림을 읽고 쓸 수 있는 네트워크 통신을 지원합니다. |
| StreamWebSocketControl |
개체에 소 StreamWebSocket 켓 제어 데이터를 제공합니다. |
| StreamWebSocketInformation |
개체에 대한 StreamWebSocket 소켓 정보를 제공합니다. |
| WebSocketClosedEventArgs |
또는 개체에서 닫힌 이벤트에 대한 MessageWebSocketStreamWebSocketIWebSocket 데이터를 제공합니다. |
| WebSocketError |
개체에 StreamWebSocket 소 MessageWebSocket 켓 오류 상태를 제공합니다. |
| WebSocketKeepAlive |
연결된 WebSocket에서 WebSocket 프로토콜 연결 유지를 보내는 기능을 제공합니다. |
| WebSocketServerCustomValidationRequestedEventArgs |
WebSocket에서 ServerCustomValidationRequested 이벤트에 대한 데이터를 제공합니다. 이 이벤트는 WebSocket에 대한 새로운 보안 연결이 수행될 때 발생하며, 연결이 설정되기 전에 코드에 서버 인증서의 사용자 지정 유효성 검사를 수행할 수 있는 기회를 제공합니다. |
구조체
| BandwidthStatistics |
또는 개체를 사용하여 StreamSocketStreamWebSocketMessageWebSocket 네트워크 데이터 전송에 대한 대역폭 정보를 나타냅니다. |
| ControlChannelTriggerContract | |
| RoundTripTimeStatistics |
개체의 왕복 시간 정보를 나타냅니다 StreamSocket . |
인터페이스
| IControlChannelTriggerEventDetails |
제어 채널 트리거를 구분하는 데 사용되는 백그라운드 브로커 인프라에 의해 인스턴스화된 개체입니다. 참고 이 인터페이스는 Windows Phone 지원되지 않습니다. |
| IControlChannelTriggerResetEventDetails |
ControlChannelReset 이벤트에 대한 백그라운드 브로커 인프라에 의해 인스턴스화된 개체로, 다시 설정되었음을 나타냅니다ControlChannelTrigger. 참고 이 인터페이스는 Windows Phone 지원되지 않습니다. |
| IWebSocket |
WebSocket을 사용하여 읽고 쓸 수 있는 네트워크 통신에 대한 액세스를 제공합니다. |
| IWebSocketControl |
개체에 소 IWebSocket 켓 제어 데이터를 제공합니다. |
| IWebSocketControl2 |
개체에 소 IWebSocket 켓 제어 데이터를 제공합니다. 이 인터페이스는 추가 속성을 사용하여 인터페이스를 확장합니다 IWebSocketControl . |
| IWebSocketInformation |
개체에 대한 IWebSocket 소켓 정보를 제공합니다. |
| IWebSocketInformation2 |
개체에 대한 IWebSocket 소켓 정보를 제공합니다. 이 인터페이스는 추가 속성을 사용하여 확장됩니다 IWebSocketInformation . |
열거형
| ControlChannelTriggerResetReason |
재설정된 이유입니다 ControlChannelTrigger . 참고 이 열거형은 Windows Phone 지원되지 않습니다. |
| ControlChannelTriggerResourceType |
컨트롤 채널 트리거에서 사용하는 리소스 종류입니다. 참고 이 열거형은 Windows Phone 지원되지 않습니다. |
| ControlChannelTriggerStatus |
시스템이 관련 네임스페이스의 클래스 요소에서 사용할 개체의 ControlChannelTrigger 구성을 Windows.Networking.Sockets 완료할 수 있는지를 지정합니다. 참고 이 열거형은 Windows Phone 지원되지 않습니다. |
| MessageWebSocketReceiveMode |
클라이언트가 수락할 메시지의 종류를 설명합니다. |
| SocketActivityConnectedStandbyAction |
시스템이 연결된 대기로 넘어가면 소켓 조정 서비스를 사용하는 앱이 패킷을 받을 수 있는지 여부를 나타냅니다. |
| SocketActivityKind |
소켓 브로커 간 또는 소켓 브로커에서 전송되는 소켓 개체의 종류를 설명합니다. |
| SocketActivityTriggerReason |
발생한 이유입니다 SocketActivityTrigger . |
| SocketErrorStatus |
소켓 작업의 상태 값을 지정합니다. |
| SocketMessageType |
개체에 대한 메시지의 형식을 MessageWebSocket 지정합니다. |
| SocketProtectionLevel |
개체에서 StreamSocket 사용할 암호화 수준을 지정합니다. |
| SocketQualityOfService |
또는 StreamSocket 개체에 대한 DatagramSocket 서비스 품질을 지정합니다. |
| SocketSslErrorSeverity |
SSL 연결에서 발생하는 오류의 범주입니다. |
설명
Windows. Networking.Sockets 네임스페이스는 소켓 및 WebSocket을 사용하는 네트워킹에 대한 클래스와 인터페이스를 제공합니다. 기본 클래스는 다음과 같습니다.
- DatagramSocket. 네트워크 통신에 사용할 UDP 데이터그램 소켓입니다.
- StreamSocket. RFCOMM을 사용하는 TCP 또는 Bluetooth 연결을 통해 들어오거나 나가는 네트워크 통신에 사용할 스트림 소켓입니다.
- StreamSocketListener. 들어오는 TCP 네트워크 연결 또는 RFCOMM을 사용하는 들어오는 Bluetooth 연결을 수신 대기하는 스트림 소켓 수신기입니다.
- MessageWebSocket. 네트워크 통신을 위해 전체 메시지를 읽고 쓸 수 있는 메시지 기반 WebSocket입니다. WebSocket을 참조하세요.
- StreamWebSocket. 네트워크 통신을 위해 스트림을 읽고 쓸 스트림 기반 WebSocket입니다. WebSocket을 참조하세요.
또한 이러한 기본 클래스에는 Windows 여러 관련 정보 및 컨트롤 클래스가 있습니다. Networking.Sockets 네임스페이스.
예외 처리
Windows 비동기 메서드를 호출할 때 예외를 처리하는 코드를 작성해야 합니다. Networking.Sockets 네임스페이스. 예외는 매개 변수 유효성 검사 오류, 이름 확인 실패 및 네트워크 오류로 인해 발생할 수 있습니다. 네트워크 오류(예: 연결 손실, 연결 오류 및 서버 오류)의 예외는 언제든지 발생할 수 있습니다. 이러한 오류로 인해 예외가 발생합니다. 앱에서 처리하지 않으면 예외로 인해 전체 앱이 런타임에 의해 종료될 수 있습니다.
Windows. Networking.Sockets 네임스페이스에는 소켓 및 WebSocket을 사용할 때 오류를 처리하기 위한 편리한 도우미 메서드 및 열거형이 있습니다. 특정 네트워크 예외를 앱에서 다르게 처리하는 데 유용합니다. 또한 앱은 매개 변수 유효성 검사 오류에 대한 예외의 HRESULT 를 사용하여 예외를 발생시킨 오류에 대한 자세한 정보를 알아볼 수 있습니다.
가능한 예외 및 예외를 처리하는 방법에 대한 자세한 내용은 네트워크 앱에서 예외 처리를 참조하세요.
근접, Wi-Fi Direct 및 Bluetooth StreamSocket 사용
앱은 근거리 내에 있는 StreamSocket 디바이스 간의 네트워크 연결에 사용할 수 있습니다. 네임스페이 Windows.Networking.Proximity 스의 클래스는 Bluetooth 또는 Wi-Fi Direct를 사용하는 주변 디바이스와의 StreamSocket 네트워크 연결을 지원합니다. 네임스페이스의 관련 클래스를 Windows.Networking.Proximity 통해 앱은 PeerFinder 근처 디바이스에서 앱의 다른 인스턴스를 검색할 수 있습니다. 이 메서드는 PeerFinder.FindAllPeersAsync 무선 범위 내에서 동일한 앱을 실행하는 피어 컴퓨터를 찾습니다. 이 메서드는 PeerFinder.ConnectAsync 앱이 근처 피어 앱으로 네트워크 데이터를 전송하는 데 사용할 수 있는 연결된 StreamSocket 항목을 반환합니다. 자세한 내용은 근접 및 탭 지원, Windows.Networking.ProximityPeerFinder근접성 샘플을 참조하세요.
또한 앱은 네임스페이스의 클래스와 함께 Wi-Fi Direct를 사용하는 디바이스 간의 네트워크 연결에 Windows.Devices.WiFiDirect 사용할 StreamSocket 수 있습니다. 클래스는 WiFiDirectDevice Wi-Fi Direct(WFD) 지원 디바이스가 있는 다른 디바이스를 찾는 데 사용할 수 있습니다. 이 메서드는 WiFiDirectDevice.GetDeviceSelector 근처의 WFD 디바이스에 대한 디바이스 식별자를 가져옵니다. 근처 WFD 디바이스에 대한 참조가 있으면 메서드를 WiFiDirectDevice.GetConnectionEndpointPairs 호출하여 개체를 EndpointPair 가져올 수 있습니다. ConnectAsync(EndpointPair) 그런 다음 클래스의 StreamSocket 메서드를 ConnectAsync(EndpointPair, SocketProtectionLevel) 사용하여 소켓 연결을 설정할 수 있습니다. 자세한 내용은 Windows.Devices.WiFiDirect 및 WiFiDirectDevice를 참조하세요.
Bluetooth Bluetooth 서비스 ID를 호스트 이름 또는 IP 주소가 아닌 연결에 대한 StreamSocket 엔드포인트로 사용합니다. Bluetooth 사용 StreamSocket 하려면 앱 매니페스트에서 bluetooth.rfcomm 디바이스 기능을 설정해야 합니다. 자세한 내용은 네임스페이 Windows.Devices.Bluetooth.Rfcomm 스, Bluetooth 디바이스 기능을 지정하는 방법 및 Bluetooth Rfcomm Chat 샘플을 참조하세요.
Wi-Fi Direct에서 DatagramSocket 사용
앱은 네임스페이스의 클래스를 DatagramSocket 사용하여 Wi-Fi Direct를 사용하는 디바이스 간의 네트워크 데이터 전송에 Windows.Devices.WiFiDirect 사용할 수 있습니다. 클래스는 WiFiDirectDevice Wi-Fi Direct(WFD) 지원 디바이스가 있는 다른 디바이스를 찾는 데 사용할 수 있습니다. 이 메서드는 WiFiDirectDevice.GetDeviceSelector 근처의 WFD 디바이스에 대한 디바이스 식별자를 가져옵니다. 근처 WFD 디바이스에 대한 참조가 있으면 메서드를 WiFiDirectDevice.GetConnectionEndpointPairs 호출하여 개체를 EndpointPair 가져올 수 있습니다. 클래스의 메서드를 DatagramSocket 사용하여 개체에 데이터를 EndpointPair 보내고 받을 수 있습니다. 자세한 내용은 Windows.Devices.WiFiDirect 및 WiFiDirectDevice를 참조하세요.
네트워크 트리거 사용
Windows. Networking.Sockets 네임스페이스는 앱이 백그라운드 네트워킹 ControlChannelTrigger 에 사용할 수 있는 두 가지 종류의 트리거를 SocketActivityTrigger제공합니다.
컨트롤 채널 트리거
앱이 ControlChannelTrigger 백그라운드에 있을 때 앱이 네트워크 데이터 패킷 및 네트워크 keepalives를 수신할 수 있습니다. 이렇게 하면 앱이 Windows 대한 실시간 상태 및 네트워크 알림을 StreamSocket 제공할 수 있습니다. Networking.Sockets 네임스페이스 및 관련 네임스페이스의 기타 네트워크 클래스.
네트워크 트리거는 네트워크 및 시스템 리소스 사용을 최소화하기 위해 장기 실행 네트워크 앱(예: 이메일 앱)에서 사용됩니다. 네트워크 트리거를 사용하면 앱이 일정 기간 동안 저전력 모드로 떨어질 수 있으므로 네트워크 연결은 그대로 유지되지만 전원이 부족합니다. 유지 간격을 설정하여 앱이 해제되어야 하는 시기를 시스템에 알릴 수 있습니다. 앱에 대한 패킷이 수신될 때 알림을 받도록 트리거를 설정할 수도 있습니다. 이러한 알림 기능은 모바일 디바이스에서 장기 실행 네트워크 앱을 사용할 때 배터리 수명을 연장하는 데 도움이 될 수 있습니다.
자세한 내용은 클래스 및 백그라운드 연결 옵션을 설정하는 방법을 참조 ControlChannelTrigger 하세요.
소켓 활동 트리거
앱이 SocketActivityTrigger 활성화되지 않은 경우(일시 중단되거나 종료된 경우에도) 그리고 현재 메모리에 로드되지 않은 경우에도 네트워크 데이터 패킷을 받을 수 있습니다. 특히 네트워크 서비스를 제공하는 앱에 대해 제공되며, 여기서 앱은 DNS-SD를 통해 서비스 공급자로 등록한 다음 비활성 상태가 됩니다. A SocketActivityTrigger 는 서비스가 활성화되고 요청된 서비스를 제공할 수 있도록 클라이언트가 서비스에 연결될 때 앱에 알립니다. SocketActivityTrigger 다른 상황에서도 사용할 수 있습니다. 수신된 네트워크 트래픽에 대한 응답으로 앱을 활성화하려면 언제든지 사용합니다.
앱에서 소켓 활동 트리거를 사용하는 경우 앱 매니페스트에서 pushNotifications 기능을 지정해야 합니다.
네트워크 트리거 선택
특정한 종류의 트리거가 적합한 몇 가지 시나리오가 있습니다. 앱에서 사용할 트리거 종류를 선택할 때 다음 사항을 고려합니다.
- IXMLHTTPRequest2System.Net.Http.HttpClient 또는 System.Net.Http.HttpClientHandler를 사용하는 ControlChannelTrigger경우 .
- 푸시 사용 StreamSocket 을 사용하는 경우 .SocketActivityTrigger 연결이 적극적으로 사용되지 않을 때 시스템에서 메모리를 확보하고 전원 요구 사항을 줄일 수 있습니다.
- 네트워크 요청을 적극적으로 처리하지 않을 때 앱의 메모리 공간을 최소화하려면 앱을 사용하는 것이 좋습니다 SocketActivityTrigger.
- 시스템이 연결된 대기 모드에 있는 동안 앱에서 데이터를 받을 수 있도록 하려면 을 사용합니다 SocketActivityTrigger.
Windows Server 2012에서 소켓 및 WebSocket 사용
Windows Server 2012 및 Windows Server 2012 R2에서는 Windows 대부분의 클래스를 구현하는Windows.Networking.dll. Media Foundation 기능을 사용하도록 설정하지 않으면 Networking.Sockets 네임스페이스가 로드되지 않습니다. 결과적으로 Windows 소켓 또는 WebSockets 클래스를 사용하는 앱입니다. Media Foundation 기능을 사용하지 않도록 설정하면 Networking.Sockets 네임스페이스가 실패합니다. Windows Server 2012 또는 Windows Server 2012 R2는 Media Foundation 기능을 사용하지 않도록 설정하여 설치합니다.
Media Foundation 기능은 서버 관리자 사용하거나 명령 프롬프트 또는 스크립트에 다음 텍스트를 입력하여 Windows Server 2012 또는 Windows Server 2012 R2에서 사용하도록 설정할 수 있습니다.
dism /online /enable-feature /featurename:ServerMediaFoundation Media Foundation 기능을 사용하도록 설정하면 사용자에게 다시 시작하라는 메시지가 표시됩니다. 컴퓨터가 다시 시작되면 Windows 소켓 및 WebSocket에 대한 클래스입니다. Networking.Sockets 네임스페이스는 예상대로 작동합니다.
네트워크 격리와 함께 소켓 및 WebSocket 사용
Windows 8의 네트워크 격리를 사용하면 UWP 앱의 보안 프로필을 완전히 제어할 수 있습니다.
네트워크 격리를 사용하면 적절한 기능을 선택하여 각 앱에 필요한 네트워크 액세스를 정의할 수 있습니다. 적절한 기능 집합이 없는 앱은 특정 네트워크 유형(인터넷 또는 홈/회사 네트워크) 및 특정 네트워크 요청(아웃바운드 클라이언트 시작 요청 또는 인바운드 원치 않는 요청 및 아웃바운드 클라이언트 시작 요청 모두)을 사용할 수 없습니다. 네트워크 격리를 적용하면 앱이 손상되더라도 앱이 기능으로 부여된 기능(예: 네트워크 유형 및 네트워크 요청)만 사용할 수 있습니다. 이렇게 하면 다른 앱과 운영 체제에 미치는 영향을 크게 줄일 수 있습니다.
Windows 8은 네트워크 격리를 적극적으로 적용합니다. 메서드에 대한 호출 또는 Windows 속성에 대한 액세스입니다. 적절한 네트워크 기능을 사용하도록 설정하지 않은 경우 Networking.Sockets 네임스페이스(또는 네트워크 액세스가 필요한 관련 네임스페이스)가 실패할 수 있습니다.
앱의 네트워크 접근 권한 값은 앱을 빌드할 때 앱 매니페스트에 구성됩니다. 네트워크 기능은 일반적으로 앱을 개발할 때 Visual Studio 사용하여 추가됩니다. 텍스트 편집기를 사용하여 앱 매니페스트 파일에서 수동으로 설정할 수도 있습니다.
네트워크 격리에 대한 자세한 내용은 네트워크 격리 기능을 구성하는 방법을 참조하세요.
추가 정보
- PeerFinder
- WiFiDirectDevice
- Windows.Devices.Bluetooth.Rfcomm
- Windows.Devices.WiFiDirect
- Windows.Networking
- Windows.Networking.Connectivity
- Windows.Networking.Proximity
- 네트워킹에 대한 지원 추가
- 소켓을 사용하여 연결
- WebSocket
- 네트워크 앱에서 예외 처리
- 네트워크 격리 기능을 구성하는 방법
- 백그라운드 연결 옵션을 설정하는 방법
- Bluetooth용 디바이스 기능을 지정하는 방법
- 근접성 지원 및 탭
- 네트워크 연결 문제 해결 및 디버깅
- SetSocketMediaStreamingMode
- rfcomm 채팅 샘플 Bluetooth
- DatagramSocket 샘플
- ControlChannelTrigger StreamWebSocket 샘플
- ControlChannelTrigger TCP 소켓 샘플
- 근접 연결 샘플
- StreamSocket 샘플
- DatagramSocket 샘플
- WebSocket 샘플
- StreamSocket 샘플
- Wi-Fi 직접 샘플
- Wi-Fi Direct 서비스 샘플(Windows 10)
- 소켓 활동 트리거 스트림 소켓 샘플
피드백
다음에 대한 사용자 의견 제출 및 보기