📄 5-2.html
字号:
<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>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">参见</FONT><FONT SIZE=3>: WSAAsyncGetProtoByNumber(), getprotobyname()</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="_Toc336626860"><A NAME="_Toc336792943"><A NAME="_Toc336793419"></FONT><FONT SIZE=5>5.2.6 getservbyname()</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 <windows.h></P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	struct servent FAR * PASCAL FAR getservbyname(const char</P>
<P ALIGN="JUSTIFY">	Far * name, const char FAR *proto);</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>proto</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>指向协议名的指针(可选)。如果这个指针为空,</FONT><FONT SIZE=3>getservbyname()</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>s_name</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或者某一个</FONT><FONT SIZE=3>s_aliases</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>匹配的服务条目。否则</FONT><FONT SIZE=3>getservbyname()</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>proto</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>都进行匹配。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">注释:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> getservbyname()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回与给定服务名对应的包含名字和服务号信息的</FONT><FONT SIZE=3>servent</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结构指针。结构的声明如下:</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	</FONT><FONT SIZE=3>struct servent {</P>
<P ALIGN="JUSTIFY">		char FAR * s_name;</P>
<P ALIGN="JUSTIFY">		char Far * FAR * s_aliases;</P>
<P ALIGN="JUSTIFY">		short s_port;</P>
<P ALIGN="JUSTIFY">		char FAR * s_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">s_name </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>正规的服务名。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">s_aliases </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一个以空指针结尾的可选服务名队列。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">s_port </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>连接该服务时需要用到的端口号,返回的端口号是以网络字节顺序排列的。</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">s_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>getservbyname()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回如上所述的一个指向</FONT><FONT SIZE=3>servent</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">WSAHOST_NOT_FOUND </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>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">参见</FONT><FONT SIZE=3>: WSAAsyncGetServByName(), getservbyport()</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="_Toc336626861"><A NAME="_Toc336792944"><A NAME="_Toc336793420"></FONT><FONT SIZE=5>5.2.7 getservbyport()</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 <windows.h></P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	struct servent FAR * PASCAL FAR getservbyport(int port,</P>
<P ALIGN="JUSTIFY">	const char FAR *proto);</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">	port</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>proto</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:</FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>指向协议名的指针(可选)。如果这个指针为空,</FONT><FONT SIZE=3>getservbyport()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回第一个</FONT><FONT SIZE=3>port</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>与</FONT><FONT SIZE=3>s_port</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>匹配的服务条目。否则</FONT><FONT SIZE=3>getservbyport()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>对</FONT><FONT SIZE=3>port</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>proto</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>都进行匹配。</P>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">注释:</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> getservbyport()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回与给定服务名对应的包含名字和服务号信息的</FONT><FONT SIZE=3>servent</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结构指针。结构的声明与</FONT><FONT SIZE=3>getservbyname()</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>getservbyport()</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>返回如上所述的一个指向</FONT><FONT SIZE=3>servent</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">WSAHOST_NOT_FOUND </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>: WSAAsyncGetServByPort(), getservbyname()</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P></FONT></BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -