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 物件。

DatagramSocket系結或連接之前或之後,可以設定OutboundUnicastHopLimit屬性。 在系結或連接的 DatagramSocket上變更此值之前,應該先排清任何傳出封包,以確保所有先前寫入的資料都會以先前的躍點限制送出。

必須先設定 DatagramSocketControl 上其他屬性值的任何變更,才能系結或連接 DatagramSocket 。 因此,如果您需要變更DontFragmentInboundBufferSizeInBytesQualityOfService屬性,則必須在成功呼叫BindEndpointAsyncBindServiceNameAsyncDatagramSocket上的其中一個ConnectAsync方法之前發生這些變更。

下列範例會建立 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 是否允許將 UDP 的 IP 資料包分散。

InboundBufferSizeInBytes

取得或設定用於在 DatagramSocket 物件上接收資料的緩衝區大小,以位元組為單位。

MulticastOnly

取得或設定 Boolean 值,指定 DatagramSocket 是否能夠與其他系結至相同位址/埠的 Win32 或 WinRT 多播通訊端共存。

OutboundUnicastHopLimit

取得或設定 DatagramSocket 物件傳送至單播 IP 位址之輸出封包的躍點限制。

QualityOfService

取得或設定 DatagramSocket 物件上的服務品質。

適用於

另請參閱