StreamSocketControl 类

定义

StreamSocket 对象上提供套接字控制数据。

public ref class StreamSocketControl sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class StreamSocketControl final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class StreamSocketControl
Public NotInheritable Class StreamSocketControl
继承
Object Platform::Object IInspectable StreamSocketControl
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
应用功能
bluetooth.rfcomm ID_CAP_NETWORKING [Windows Phone]

注解

StreamSocketControl 类提供对 StreamSocket 对象上高级套接字控制数据的访问权限。

StreamSocketControl 对象是使用父 StreamSocket 对象自动创建的。 StreamSocket.Control 属性提供对关联的 StreamSocketControl 对象的访问。

在连接 StreamSocket 之前,必须设置对 StreamSocketControl 上的属性值所做的任何更改。 因此,如果需要更改 ClientCertificateIgnorableServerCertificateErrorsKeepAliveNoDelayOutboundBufferSizeInBytesOutboundUnicastHopLimitQualityOfService 属性,则这些更改必须在成功调用 StreamSocket 上的 ConnectAsync 方法之一之前发生。

使用 ClientCertificate 设置客户端证书,以用于通过关联的 StreamSocket 对象建立安全连接。

以下示例创建 StreamSocket,然后演示如何将 NoDelay 属性设置为 false。 其他属性可能以类似的方式设置。 完成此操作后,应用可以连接 StreamSocket

using Windows.Networking.Sockets;

StreamSocket clientSocket = new StreamSocket();

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

// Set NoDelay to false so that the Nagle algorithm is not disabled.
clientSocket.Control.NoDelay = false;

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

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

// Set NoDelay to false so that the Nagle algorithm is not disabled.
clientSocket.Control().NoDelay(false);

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

StreamSocket^ clientSocket = ref new StreamSocket();

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

// Set NoDelay to false so that the Nagle algorithm is not disabled.
clientSocket->Control->NoDelay = false;

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

有关使用 StreamSocketControl 的详细信息,请参阅 如何使用高级套接字控件

版本历史记录

Windows 版本 SDK 版本 增值
1709 16299 MinProtectionLevel

属性

ClientCertificate

获取或设置在服务器请求客户端证书时将发送到服务器的客户端 SSL/TLS 证书。

IgnorableServerCertificateErrors

获取与 StreamSocket 建立 SSL 连接时要忽略的 SSL 服务器错误的矢量。

KeepAlive

一个 值,该值指示是否将保持连接数据包发送到 StreamSocket 对象的远程目标。

MinProtectionLevel

约束当开发人员使用 ConnectAsync () 或 UpgradeToSslAsync () 需要 TLS 的方法时将协商的 TLS 协议版本。

NoDelay

一个 值,该值指示是否在 StreamSocket 对象上使用 Nagle 算法。

OutboundBufferSizeInBytes

用于在 StreamSocket 对象上发送数据的发送缓冲区的大小(以字节为单位)。

OutboundUnicastHopLimit

StreamSocket 对象发送到单播 IP 地址的出站数据包的跃点限制。

QualityOfService

StreamSocket 对象上的服务质量。

SerializeConnectionAttempts

一个 值,该值指示在进行多次连接尝试时,尝试是并行还是串行进行。

适用于

另请参阅