⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7.html

📁 WinSock编程规范及应用
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<P ALIGN="JUSTIFY">错误代码:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANOTINITIALISED&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在调用本</FONT><FONT SIZE=3>API</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>之前应成功调用</FONT><FONT SIZE=3>WSAStartup()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENETDOWN &#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>网络子系统失效。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENOTSOCK &#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>描述字不是一个套接口。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">另请参阅:</FONT><FONT SIZE=3>  htonl(), htons(), ntohs(), ntohl(), WSAHtonl(),WSANtohl(), WSANtohs().</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="黑体" LANG="ZH-CN" SIZE=5><P><A NAME="_Toc336626919"><A NAME="_Toc336793002"><A NAME="_Toc336793478"></FONT><FONT FACE="Arial" SIZE=5>7.13 WSAIoctl()</A></A></A></P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">简述:控制一个套接口的模式。</P>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">          #include &lt;winsock2.h&gt;</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">          int WSAAPI WSAIoctl(SOCKET s, DWORD</P>
<P ALIGN="JUSTIFY">          dwIoControlCode, LPVOID lpvInBuffer, DWORD</P>
<P ALIGN="JUSTIFY">          cbInBuffer, LPVOID lpvOutBuffer, DWORD</P>
<P ALIGN="JUSTIFY">          cbOutBuffer, LPDWORD lpcbBytesReturned,</P>
<P ALIGN="JUSTIFY">          LPWSAOVERLAPPED lpOverlapped,</P>
<P ALIGN="JUSTIFY">          LPWSAOVERLAPPED_COMPLETION_ROUTINE</P>
<P ALIGN="JUSTIFY">          lpCompletionRoutine);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">s</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个套接口的句柄。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">dwIoControlCode</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:将进行的操作的控制代码。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpvInBuffer</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:输入缓冲区的地址。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">cbInBuffer</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:输入缓冲区的大小。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpvOutBuffer</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:输出缓冲区的地址。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">cbOutBuffer</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:输出缓冲区的大小。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpcbBytesReturned</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:输出实际字节数的地址。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpOverlapped</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3>WSAOVERLAPPED</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结构的地址。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpCompletionRoutine</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指向操作结束后调用的例程指针。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">返回值:</P>
<P ALIGN="JUSTIFY">调用成功后,</FONT><FONT SIZE=3>WSAIoctl ()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>函数返回</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。否则的话,将返回</FONT><FONT SIZE=3>INVALID_SOCKET</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>错误,应用程序可通过</FONT><FONT SIZE=3>WSAGetLastError()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>来获取相应的错误代码。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">错误代码:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANOTINITIALISED&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在调用本</FONT><FONT SIZE=3>API</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>之前应成功调用</FONT><FONT SIZE=3>WSAStartup()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENETDOWN&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>网络子系统失效。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINVAL&#9;&#9;&#9;&#9;cmd</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>不是一个合法的命令;或者一个输入参数非法;或者命令对于该种类型的套接口不适用。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINPROGRESS&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在一个回调函数运行时调用了该函数。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENOTSOCK&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>描述字不是一个套接口。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEOPNOTSUPP&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>指定的</FONT><FONT SIZE=3>ioctl</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>命令无法实现,例如在</FONT><FONT SIZE=3>SIO_SET_QOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或</FONT><FONT SIZE=3>                              SIO_SET_GROUP_QOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>中指定的流描述无法实现。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSA_IO_PENDING&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个重叠操作被成功启动,过后将报告完成情况。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEWOULDBLOCK&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>套接口标志为非阻塞,且所需操作将产生阻塞。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">另请参阅:</FONT><FONT SIZE=3>  socket(), ioctlsocket(), WSASocket(),setsockopt(), getsockopt().</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="黑体" LANG="ZH-CN" SIZE=5><P><A NAME="_Toc336626920"><A NAME="_Toc336793003"><A NAME="_Toc336793479"></FONT><FONT FACE="Arial" SIZE=5>7.14 WSAJoinLeaf()</A></A></A></P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">简述:将一个叶节点加入一个多点会晤,交换连接数据,根据提供的流描述确定所需的服务质量。</P>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">          #include &lt;winsock2.h&gt;</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">          SOCKET WSAAPI WSAJoinLeaf ( SOCKET s, const struct</P>
<P ALIGN="JUSTIFY">          sockaddr FAR * name, int namelen, LPWSABUF</P>
<P ALIGN="JUSTIFY">          lpCallerData, LPWSABUF lpCalleeData,</P>
<P ALIGN="JUSTIFY">           LPQOS lpSQOS, LPQOS lpGQOS, int iFlags );</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">          </P>
<P ALIGN="JUSTIFY">s</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:标识一个多点套接口的描述字。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:将与套接口连接的远端名字。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">namelen</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:名字长度。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpCallerData</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指针,指向多点会晤创建时传送给远端的用户数据。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpCalleeData</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指针,指向多点会晤创建时从远端传送回来的用户数据。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpSQOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指向套接口</FONT><FONT SIZE=3>s</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的流描述的指针,每个方向一个。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">lpGQOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指向套接口组(如果存在)流描述的指针。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">iFlags</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:标志位,用于指定套接口作为发送者。接收者或身兼二者。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">返回值:若无错误发生,</FONT><FONT SIZE=3>WSAJoinLeaf()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回新创建的多点套接口的描述字。否则的话,将返回</FONT><FONT SIZE=3>INVALID_SOCKET</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>错误,应用程序可通过</FONT><FONT SIZE=3>WSAGetLastError()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>来获取相应的错误代码。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">错误代码:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANOTINITIALISED&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在调用本</FONT><FONT SIZE=3>API</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>之前应成功调用</FONT><FONT SIZE=3>WSAStartup()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENETDOWN&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>网络子系统失效。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEADDRINUSE&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>指定的地址已经在使用中。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINTR&#9;&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>通过</FONT><FONT SIZE=3>WSACancelBlockingCall()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>函数取消(阻塞)调用。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINPROGRESS&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个阻塞的</FONT><FONT SIZE=3>WinSock</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>调用正在进行中,或者服务提供者仍在处理一个回调函数。(参见</FONT><FONT SIZE=3>B.3.6.6</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>节)</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEALREADY&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在指定的套接口上正在运行一个非阻塞的</FONT><FONT SIZE=3>WSAJoinLeaf()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>调用。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEADDRNOTAVAIL&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>本地主机无法获得指定的地址。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEAFNOSUPPORT&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>所指定地址族中的地址无法与本套接口一起使用。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAECONNREFUSED&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>加入试图被强制拒绝。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEFAULT&#9;&#9;&#9;&#9;name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或</FONT><FONT SIZE=3>namelen</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>参数不是用户地址空间的一个有效部分;</FONT><FONT SIZE=3>namelen</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>参数太小;</FONT><FONT SIZE=3>lpCalleeData</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>、</FONT><FONT SIZE=3> lpSQOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>lpGQOS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的缓冲区太小;</FONT><FONT SIZE=3> lpCallerData</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>缓冲区太大。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINVAL&#9;&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>套接口已与一个地址捆绑。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINVAL&#9;&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>套接口未与一个地址捆绑。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEISCONN&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>套接口已是多点会晤的一个成员。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENETUNREACH&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>当前无法从本主机联系网络。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENOBUFS&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>无可用缓冲区空间。套接口无法加入。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAENOTSOCK&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>描述字不是一个套

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -