WSAJoinLeaf()

王朝百科·作者佚名  2010-01-05  
宽屏版  字体:   |    |    |  超大  

简述:将一个叶节点加入一个多点会晤,交换连接数据,根据提供的流描述确定所需的服务质量。

#include <winsock2.h>

SOCKET WSAAPI WSAJoinLeaf ( SOCKET s, const struct

sockaddr FAR * name, int namelen, LPWSABUF

lpCallerData, LPWSABUF lpCalleeData,

LPQOS lpSQOS, LPQOS lpGQOS, int iFlags );

s:标识一个多点套接口的描述字。

name:将与套接口连接的远端名字。

namelen:名字长度。

lpCallerData:一个指针,指向多点会晤创建时传送给远端的用户数据。

lpCalleeData:一个指针,指向多点会晤创建时从远端传送回来的用户数据。

lpSQOS:一个指向套接口s的流描述的指针,每个方向一个。

lpGQOS:一个指向套接口组(如果存在)流描述的指针。

iFlags:标志位,用于指定套接口作为发送者。接收者或身兼二者。

返回值:若无错误发生,WSAJoinLeaf()返回新创建的多点套接口的描述字。否则的话,将返回INVALID_SOCKET错误,应用程序可通过WSAGetLastError()来获取相应的错误代码。

错误代码:

WSANOTINITIALISED 在调用本API之前应成功调用WSAStartup()。

WSAENETDOWN 网络子系统失效。

WSAEADDRINUSE 指定的地址已经在使用中。

WSAEINTR 通过WSACancelBlockingCall()函数取消(阻塞)调用。

WSAEINPROGRESS 一个阻塞的WinSock调用正在进行中,或者服务提供者仍在处理一个回调函数

WSAEALREADY 在指定的套接口上正在运行一个非阻塞的WSAJoinLeaf()调用。

WSAEADDRNOTAVAIL 本地主机无法获得指定的地址。

WSAEAFNOSUPPORT 所指定地址族中的地址无法与本套接口一起使用。

WSAECONNREFUSED 加入试图被强制拒绝。

WSAEFAULT name或namelen参数不是用户地址空间的一个有效部分;namelen参数太小;lpCalleeData、 lpSQOS和lpGQOS的缓冲区太小; lpCallerData缓冲区太大。

WSAEINVAL 套接口已与一个地址捆绑。

WSAEINVAL 套接口未与一个地址捆绑。

WSAEISCONN 套接口已是多点会晤的一个成员。

WSAENETUNREACH 当前无法从本主机联系网络。

WSAENOBUFS 无可用缓冲区空间。套接口无法加入。

WSAENOTSOCK 描述字不是一个套接口。

WSAEOPNOTSUPP lpSQOS和lpGQOS中所指定的流描述无法满足。

WSAEPROTONOSUPPORT 服务提供者不支持lpCallerData参数。

WSAETIMEDOUT 加入试图超时,未建立多点会晤。

WSAEWOULDBLOCK 套接口被标志为非阻塞,但多点会晤加入操作无法立即完成。当用select()选为读连接后,可使用select()对套接口进行操作。

另请参阅: accept(), bind(), select(), WSAAccept(),WSAAsyncSelect(), WSAEventSelect(), WSASocket().

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有