📄 5-2.html
字号:
</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">	</FONT><FONT SIZE=3>#include <winsock.h></P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	int PASCAL FAR gethostname(char FAR *name, int namelen);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	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">	</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">	</FONT><FONT SIZE=3>#include <winsock.h></P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	struct protoent FAR * PASCAL FAR getprotobyname(const char</P>
<P ALIGN="JUSTIFY">	FAR * name);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	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">	</FONT><FONT SIZE=3>struct protoent {</P>
<P ALIGN="JUSTIFY">		char FAR * p_name;</P>
<P ALIGN="JUSTIFY">		char Far * far * p_aliases;</P>
<P ALIGN="JUSTIFY">		short p_proto;</P>
<P ALIGN="JUSTIFY">	};</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">	返回的指针指向一个由</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">	</FONT><FONT SIZE=3>#include <winsock.h></P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	struct protoent FAR * PASCAL FAR getprotobynumber(int number);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	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">	返回的指针指向一个由</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 + -