词条 | getservbyname() |
释义 | § 简述 返回对应于给定服务名和协议名的相关服务信息。 #include <windows.h> struct servent FAR * PASCAL FAR getservbyname(const char Far * name, const char FAR *proto); name: 一个指向服务名的指针。 proto: 指向协议名的指针(可选)。如果这个指针为空,getservbyname()返回第一个name与s_name或者某一个s_aliases匹配的服务条目。否则getservbyname()对name和proto都进行匹配。 § 注释 getservbyname()返回与给定服务名对应的包含名字和服务号信息的servent结构指针。结构的声明如下: struct servent { char FAR * s_name; char Far * FAR * s_aliases; short s_port; char FAR * s_proto; }; 结构的成员有: 成员 用途 s_name 正规的服务名。 s_aliases 一个以空指针结尾的可选服务名队列。 s_port 连接该服务时需要用到的端口号,返回的端口号是以网络字节顺序排列的。 s_proto 连接该服务时用到的协议名。 返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。 § 返回值 如果没有错误发生,getservbyname()返回如上所述的一个指向servent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。 错误代码: WSANOTINTIALISED 在应用这个API前,必须成功地调用WSAStartup()。 WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。 WSAHOST_NOT_FOUND 没有找到授权应答主机。 WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。 WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。 WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了. 参见: WSAAsyncGetServByName(), getservbyport() |
随便看 |
百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。