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

📄 5-2.html

📁 WinSock编程规范及应用
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINPROGRESS    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个阻塞的</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>操作正在进行。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINTR          </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>阻塞调用被</FONT><FONT SIZE=3>WSACancelBlockingCall()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>取消了</FONT><FONT SIZE=3>.</P>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">参见</FONT><FONT SIZE=3>: WSAAsyncGetHostByName(), gethostbyaddr()</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="_Toc336626857"><A NAME="_Toc336792940"><A NAME="_Toc336793416"></FONT><FONT SIZE=5>5.2.3 gethostname()</A></A></A></P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">简述:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回本地主机的标准主机名。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;</FONT><FONT SIZE=3>#include &lt;winsock.h&gt;</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;int PASCAL FAR gethostname(char FAR *name, int namelen);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3>   </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个指向将要存放主机名的缓冲区指针。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;</FONT><FONT SIZE=3>namelen</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:缓冲区的长度。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">注释:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>该函数把本地主机名存放入由</FONT><FONT SIZE=3>name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>参数指定的缓冲区中。返回的主机名是一个以</FONT><FONT SIZE=3>NULL</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结束的字符串。主机名的形式取决于</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>实现-它可能是一个简单的主机名,或者是一个域名。然而,返回的名字必定可以在</FONT><FONT SIZE=3>gethostbyname()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>WSAAsyncGetHostByName()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>中使用。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">返回值:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果没有错误发生,</FONT><FONT SIZE=3>gethostname()</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>SOCKET_ERROR</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">WSAEFAULT         </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>名字长度参数太小。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANOTINTIALISED  </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">WSAENTDOWN        Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>实现检测到了网络子系统的错误。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINPROGRESS    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个阻塞的</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>操作正在进行。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">参见:</FONT><FONT SIZE=3>gethostbyname(), WSAAsyncGetHostByName()</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="_Toc336626858"><A NAME="_Toc336792941"><A NAME="_Toc336793417"></FONT><FONT SIZE=5>5.2.4 getprotobyname()</A></A></A></P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">简述:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回对应于给定协议名的相关协议信息。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;</FONT><FONT SIZE=3>#include &lt;winsock.h&gt;</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;struct protoent FAR * PASCAL FAR getprotobyname(const char</P>
<P ALIGN="JUSTIFY">&#9;FAR * name);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个指向协议名的指针。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">注释:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    getprotobyname()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回对应于给定协议名的包含名字和协议号的</FONT><FONT SIZE=3>protoent</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结构指针。结构的声明如下:</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;</FONT><FONT SIZE=3>struct protoent {</P>
<P ALIGN="JUSTIFY">&#9;&#9;char FAR *        p_name;</P>
<P ALIGN="JUSTIFY">&#9;&#9;char Far * far *  p_aliases;</P>
<P ALIGN="JUSTIFY">&#9;&#9;short             p_proto;</P>
<P ALIGN="JUSTIFY">&#9;};</P>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">结构的成员有:</P>
<P ALIGN="JUSTIFY">成员</FONT><FONT SIZE=3>                 </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>用途</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">p_name            </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>正规的协议名。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">p_aliases         </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个以空指针结尾的可选协议名队列。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">p_proto           </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>以主机字节顺序排列的协议号</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;返回的指针指向一个由</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他</FONT><FONT SIZE=3>Windows Scokets API</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>调用前,把自己所需的信息拷贝下来。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">返回值:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果没有错误发生,</FONT><FONT SIZE=3>getprotobyname()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回如上所述的一个指向</FONT><FONT SIZE=3>protoent</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">WSANOTINTIALISED  </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">WSAENTDOWN        Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>实现检测到了网络子系统的错误。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANO_RECOVERY    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>无法恢复的错误,</FONT><FONT SIZE=3>FORMERR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>REFUSED</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>NOTIMP</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSANO_DATA        </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>有效的名字,但没有关于请求类型的数据记录。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINPROGRESS    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个阻塞的</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>操作正在进行。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">WSAEINTR          </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>阻塞调用被</FONT><FONT SIZE=3>WSACancelBlockingCall()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>取消了</FONT><FONT SIZE=3>.</P>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">参见</FONT><FONT SIZE=3>: WSAAsyncGetProtoByName(), getprotobynumber()</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="_Toc336626859"><A NAME="_Toc336792942"><A NAME="_Toc336793418"></FONT><FONT SIZE=5>5.2.5 getprotobynumber()</A></A></A></P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">简述:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回对应于给定协议号的相关协议信息。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;</FONT><FONT SIZE=3>#include &lt;winsock.h&gt;</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;struct protoent FAR * PASCAL FAR getprotobynumber(int number);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;number</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:一个以主机顺序排列的协议号。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">注释:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    getprotobynumber()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回对应于给定协议名的包含名字和协议号的</FONT><FONT SIZE=3>protoent</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结构指针。结构的声明与</FONT><FONT SIZE=3>getprotobyname</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>中的一致。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">&#9;返回的指针指向一个由</FONT><FONT SIZE=3>Windows Sockets</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他</FONT><FONT SIZE=3>Windows Scokets API</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>调用前,把自己所需的信息拷贝下来。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">返回值:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">    </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果没有错误发生,</FONT><FONT SIZE=3>getprotobynumber()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回如上所述的一个指向</FONT><FONT SIZE=3>protoent</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>

⌨️ 快捷键说明

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