PROTOCOL_INFO

【勇芳软件工作室】汉化HomePreviousNext

PROTOCOL_INFO结构包含有关协议的信息。

typedef struct _PROTOCOL_INFO {

DWORD dwServiceFlags;

INT iAddressFamily;

INT iMaxSockAddr;

INT iMinSockAddr;

INT iSocketType;

INT iProtocol;

DWORD dwMessageSize;

LPTSTR lpProtocol;

} PROTOCOL_INFO;

会员

dwServiceFlags

一组指定协议提供的服务的位标志。可以设置以下位标志中的一个或多个:

含义
XP_CONNECTIONLESS如果设置了该标志,则协议提供无连接(数据报)服务。如果该标志清楚,则协议提供面向连接的数据传输。
XP_GUARANTEED_DELIVERY如果设置了该标志,协议将保证发送的所有数据将到达目的地。如果这个标志是清楚的,那没有这样的保证。
XP_GUARANTEED_ORDER如果设置了该标志,协议将保证数据按照发送顺序到达。请注意,此特性不保证数据的传送,但只保证其顺序。如果该标志清除,则不保证发送的数据顺序。
XP_MESSAGE_ORIENTED如果设置了该标志,协议是面向消息的。面向消息的协议符合消息边界。如果这个标志是清楚的,协议是面向流的,消息边界的概念是无关紧要的。
XP_PSEUDO_STREAM如果设置了该标志,协议是面向消息的协议,忽略所有接收操作的消息边界。

当您不希望协议框架消息时,此可选功能非常有用。需要面向流特性的应用程序可以打开一个类型为SOCK_STREAM的套接字??,用于支持此函数的传输协议,而不管iSocketType的值。

XP_GRACEFUL_CLOSE如果设置了该标志,协议支持两阶段关闭操作,也称为“优雅”关闭操作。如果此标志清除,则协议仅支持中止关闭操作。
XP_EXPEDITED_DATA如果设置了该标志,协议支持加速数据,也称为“紧急数据”。
XP_CONNECT_DATA如果设置此标志,协议支持连接数据。
XP_DISCONNECT_DATA如果设置此标志,协议支持断开数据。
XP_SUPPORTS_BROADCAST如果设置了该标志,协议支持广播机制。
XP_SUPPORTS_MULTICAST如果设置该标志,协议支持多播机制。
XP_BANDWIDTH_ALLOCATION如果设置了该标志,则该协议支持向应用分配保证带宽的机制。
XP_FRAGMENTATION如果该标志发出,协议支持消息分片;物理网络MTU从应用程序中隐藏。
XP_ENCRYPTS如果设置了该标志,协议支持数据加密。

iAddressFamily

当您调用插座函数打开协议的套接字时,指定要作为【af】参数传递的值。该地址族值唯一地定义协议使用的协议地址(也称为SOCKADDR)的结构。

iMaxSockAddr

指定协议支持的套接字地址的最大长度。

iMinSockAddr

指定协议支持的套接字地址的最小长度。

iSocketType

当调用插座函数打开协议的套接字时,指定要作为【类型】参数传递的值。

请注意,如果在dwServiceFlags中设置了XP_PSEUDO_STREAM,则应用程序可以将SOCK_STREAM指定为插座【类型】参数,而不考虑iSocketType的值。

协议

当调用插座函数打开协议的套接字时,指定要作为【协议】参数传递的值。

dwMessageSize

指定协议支持的最大消息大小。这是可以从主机发送或接收的消息的最大大小。对于不支持消息成帧的协议,可以发送给给定地址的消息的实际最大大小可能小于该值。

定义了以下特殊消息大小值:

含义
0协议是面向流的;消息大小的概念是不相关的。
0xFFFFFFFF协议是面向消息的,但没有最大消息大小。

lpProtocol

指向提供协议名称的零终止字符串;例如,“SPX2”。

也可以看看

EnumProtocols, 插座