Поделиться через


DatagramSocketControl Класс

Определение

Предоставляет данные управления сокетом для объекта DatagramSocket .

public ref class DatagramSocketControl sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class DatagramSocketControl final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class DatagramSocketControl
Public NotInheritable Class DatagramSocketControl
Наследование
Object Platform::Object IInspectable DatagramSocketControl
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)
Возможности приложения
ID_CAP_NETWORKING [Windows Phone]

Комментарии

Класс DatagramSocketControl предоставляет доступ к расширенным данным управления сокетом в объекте DatagramSocket .

Объект DatagramSocketControl создается автоматически с родительским объектом DatagramSocket . Свойство DatagramSocket.Control предоставляет доступ к связанному объекту DatagramSocketControl.

Свойство OutboundUnicastHopLimit можно задать до или после привязки или подключения DatagramSocket . Перед изменением этого значения в привязанном или подключенном DatagramSocket все исходящие пакеты необходимо сначала очистить, чтобы обеспечить отправку всех ранее записанных данных с предыдущим ограничением прыжка.

Любые изменения других значений свойств в DatagramSocketControl должны быть заданы перед привязкой или подключением DatagramSocket . В результате, если необходимо внести изменения в свойства DontFragment, InboundBufferSizeInBytes или QualityOfService , эти изменения должны произойти до успешного вызова метода BindEndpointAsync, BindServiceNameAsync или одного из методов ConnectAsync в DatagramSocket.

В следующем примере создается DatagramSocket, а затем показано, как присвоить свойству QualityOfService значение LowLatency. Другие свойства могут быть заданы аналогичным образом. После этого приложение может подключить DatagramSocket или отправить данные в сокет.

using Windows.Networking.Sockets;

DatagramSocket clientSocket = new DatagramSocket();

// Get the current setting for this option.
// This isn't required, but it shows how to get the current setting.
var currentSetting = clientSocket.Control.QualityOfService;

// Set QualityOfService to LowLatency.
clientSocket.Control.QualityOfService = SocketQualityOfService.LowLatency;

// Now you can call the ConnectAsync method to connect the DatagramSocket.
#include <winrt/Windows.Networking.Sockets.h>
using namespace winrt;
...
Windows::Networking::Sockets::DatagramSocket clientSocket;

// Get the current setting for this option.
// This isn't required, but it shows how to get the current setting.
auto currentSetting{ clientSocket.Control().QualityOfService() };

// Set QualityOfService to LowLatency.
clientSocket.Control().QualityOfService(Windows::Networking::Sockets::SocketQualityOfService::LowLatency);

// Now you can call the ConnectAsync function to connect the DatagramSocket.
using namespace Windows::Networking::Sockets;

DatagramSocket^ clientSocket = ref new DatagramSocket();

// Get the current setting for this option.
// This isn't required, but it shows how to get the current setting.
auto currentSetting = clientSocket->Control->QualityOfService;

// Set QualityOfService to LowLatency.
clientSocket->Control->QualityOfService = SocketQualityOfService::LowLatency;

// Now you can call the ConnectAsync method to connect the DatagramSocket.

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

Свойства

DontFragment

Возвращает или задает логическое значение, указывающее, разрешает ли DatagramSocket фрагментировать ip-датаграммы для UDP.

InboundBufferSizeInBytes

Возвращает или задает размер (в байтах) буфера, используемого для получения данных в объекте DatagramSocket .

MulticastOnly

Возвращает или задает логическое значение, указывающее, может ли DatagramSocket сосуществовать с другими многоадресными сокетами Win32 или WinRT, привязанными к одному адресу или порту.

OutboundUnicastHopLimit

Возвращает или задает ограничение прыжка для исходящего пакета, отправленного на одноадресный IP-адрес объектом DatagramSocket .

QualityOfService

Возвращает или задает качество обслуживания объекта DatagramSocket .

Применяется к

См. также раздел