2014-01-08 19 views
2

如何创建套接字组并将套接字连接到此套接字组中(WSASocket文档)。什么是套接字组? (Windows)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms742212(v=vs.85).aspx

它也解释说,在一个插座组中的所有插座必须使用相同的协议连接到同一台主机端点。但是,我不明白何时或为什么我会想要这样做?这有什么特别的好处吗?这个功能是否仅适用于客户端应用程序(如Web浏览器),还是我可以在服务器上利用的东西?

回答

0

您所描述的仅限于约束组。 Unconstrained组可以包含不同类型/协议的套接字。

如果你仔细看下documentation,它会解释什么套接字组实际上用于:“向底层服务提供者表明一组特定的套接字是相关的,并且这样形成的组具有某些属性。组内单个套接字的优先级和组的服务质量规范“。

有MSDN上的其他文件中提到插座组:

Socket Groups in the Windows Sockets 2 SPI

所有使用插座组被保留。

WSAJoinLeaf function

lpGQOS [IN] 保留用于与插座组将来使用。指向套接字组的FLOWSPEC结构的指针(如果适用)。

WSAAccept function

lpfnCondition [IN] 可选,应用程序指定的条件函数的,这将使该地址的接受基于作为参数传入呼叫者信息/拒绝判定,以及任选地创建或通过为该函数的结果参数g分配适当的值来加入套接字组。

...

lpGQOS参数是保留的,应该是NULL。 (保留以供套接字组将来使用)引用调用程序要创建的套接字组的FLOWSPEC结构,每个方向一个,然后是任何其他提供程序特定的参数。 lpGQOS的NULL值表示没有主叫方指定的组服务质量。如果要进行协商,可以返回服务质量信息。

除非您实际处理代码中的QOS,否则通常不使用套接字组。