Подключение через сокеты (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Отправка и получение данных с использованием TCP или UDP-сокетов в вашем приложении Магазина Windows с помощью компонентов в пространстве имен Windows.Networking.Sockets.

Сокеты предоставляют низкоуровневый интерфейс для отправки и получения сетевых данных. К основным классам, которые можно использовать с сокетами, относятся следующие:

  • DatagramSocket — Используется для поддержки сетевой передачи данных с помощью UDP-сокета датаграмм.
  • StreamSocket — Используется для поддержки сетевой передачи данных с помощью TCP-сокета потока.
  • StreamSocketListener — Используется для поддержки ожидания входящего сетевого подключения с помощью TCP-сокета потока.

Основные классы, перечисленные выше, также имеют ряд связанных классов поддержки в пространстве имен Windows.Networking.Sockets, используемом этими классами.

Разработчики

Предназначено для разработчиков на Javascript, C#, VB.NET, C++, заинтересованных в возможности использования сокетов для сетевой передачи данных в своих приложениях среды выполнения Windows. Эта возможность включает в себя сокеты TCP и UDP, в том числе многоадресную рассылку по протоколу UDP, чтобы позволить разработчикам реализовывать другие протоколы верхнего уровня. Приложение может использовать сокеты TCP и UDP, чтобы устанавливать клиентские подключения, ожидать запросы на подключение и функционировать в качестве сервера или выполнять операции клиента и сервера.

Рассмотрите возможность использования следующих протоколов, исходя из требований приложений.

Если ваше приложение Используйте

Подключается к сетевой службе, использующей существующий протокол (например, SMTP, POP, IMAP или MAPI для почты), который не поддерживается напрямую другими сетевыми возможностями

Сокеты TCP или UDP

Подключается к другому компьютеру в той же локальной сети

Сокеты TCP или UDP

Требует простого протокола типа "запрос-ответ", который может передавать данные через прокси-серверы HTTP.

API REST, доступные с помощью C#, VB.NET и C++.

Требует семантики сокета (асинхронная, двунаправленная передача данных) для передачи данных через Интернет, в том числе через прокси-серверы HTTP.

WebSockets

 

Сокеты поддерживаются классами в пространствах имен Windows.Networking.Sockets и Windows.Networking.

В Windows 8 также вводится новый тип сокета — WebSocket. Подробнее см. в разделе Подключение с помощью сокетов WebSocket и классов MessageWebSocket и StreamWebSocket.

В этом разделе

Тема Описание
Подключение с помощью сокета потока

Узнайте, как подключаться к сетевому ресурсу с помощью сокета потока, используя протокол TCP для отправки и получения данных.

Подключение с помощью сокета датаграмм

Узнайте, как подключаться к сетевому ресурсу с помощью сокета датаграмм, используя протокол UDP для отправки и получения данных.

Использование расширенных элементов управления сокета

Узнайте, как применять дополнительные элементы управления сокетом при использовании DatagramSocket, StreamSocket или StreamSocketListener.

Защита подключений через сокет с помощью протокола TLS/SSL

Узнайте, как защитить подключения через сокет с помощью протокола TLS/SSL при использовании StreamSocket.

Настройка времени ожидания при выполнении операций с сокетами

Узнайте, как настроить время ожидания для сетевых операций с сокетами, чтобы ограничить время ожидания окончания операции.

 

Использование сокетов вместе с сетевой изоляцией

Функция сетевой изоляции в Windows 8.1, Windows Phone 8.1 и Windows Server 2012 R2 позволяет разработчику управлять доступом приложения среды выполнения Windows к сети и ограничивать его. Доступ к сети может потребоваться не всем приложениям. Однако для приложений, нуждающихся в нем, Windows 8.1 и Windows Server 2012 R2 предоставляют разные уровни доступа к сети, которые можно включить, выбрав соответствующие возможности.

Сетевая изоляция позволяет разработчику определить для каждого приложения область необходимого доступа к сети. Приложению без соответствующей определенной области запрещен доступ к отдельному типу сети и к отдельному типу сетевых запросов (только исходящим запросам, инициированным клиентом, или им же в сочетании с входящими нежелательными запросами). Возможность настраивать и применять сетевую изоляцию гарантирует, что даже в случае компрометации приложения оно сможет получить доступ только к тем сетям, к которым доступ ему предоставлен явно. Таким образом значительно сокращается область воздействия на другие приложения и Windows.

Сетевая изоляция влияет на все элементы класса в Windows.Networking.Sockets и связанных пространствах имен, которые пытаются получить доступ к сети. Сетевая изоляция активно используется в Windows. Вызов элемента класса в пространстве имен Windows.Networking.Sockets, обеспечивающем доступ к сети, может быть не выполнен из-за сетевой изоляции, если соответствующая возможность работы с сетью не была включена.

Возможности сети для приложения настраиваются в его манифесте при сборке. Они обычно добавляются с помощью Microsoft Visual Studio 2013 в ходе разработки приложения. Возможности работы с сетью можно также задать вручную в файле манифеста приложения, используя текстовый редактор.

Дополнительные сведения о сетевой изоляции см. в разделе Настройка возможностей сетевой изоляции.

Связанные разделы

Другие ресурсы

Добавление поддержки сети

Подключение через WebSockets

Настройка возможностей сетевой изоляции

Настройка параметров фонового подключения

Устранение неполадок и отладка сетевых подключений

Ссылки

Windows.Networking

Windows.Networking.Connectivity

Windows.Networking.Sockets

Примеры

Пример DatagramSocket

Пример StreamSocket