gethostbyaddr()

王朝百科·作者佚名  2010-01-05
窄屏简体版  字體: |||超大  

简述:

返回对应于给定地址的主机信息。

#include <winsock.h>

struct hostent FAR *PASCAL FAR gethostbyaddr(const char

FAR * addr, int len, int type);

addr:指向网络字节顺序地址的指针。

len: 地址的长度,在PF_INET类型地址中为4。

type:地址类型,应为PF_INET。

注释:

gethostbyaddr()返回对应于给定地址的包含主机名字和地址信息的hostent结构指针。结构的声明如下:

struct hostent {

char FAR * h_name;

char FAR * FAR * h_aliases;

short h_addrtype;

short h_length;

char FAR * FAR * h_addr_list;

};

结构的成员有:

成员 用途

h_name 正规的主机名字(PC)。

h_aliases 一个以空指针结尾的可选主机名队列。

h_addrtype 返回地址的类型,对于Windows Sockets,这个域总是PF_INET。

h_legnth 每个地址的长度(字节数),对应于PF_INET这个域应该为4。

h_addr_list 应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的

为了保证其他旧的软件的兼容性,h_addr_list[0]被定义为宏h_addr。

返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。

返回值:

如果没有错误发生,gethostbyaddr()返回如上所述的一个指向hostent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。

错误代码:

WSANOTINTIALISED 在应用这个API前,必须成功地调用WSAStartup()。

WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。

WSAHOST_NOT_FOUND 没有找到授权应答主机。

WSATRY_AGAIN 没有找到非授权主机,或者SERVERFAIL。

WSANO_RECOVERY 无法恢复的错误,FORMERR,REFUSED,NOTIMP。

WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。

WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。

WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了.

参见:WSAAsyncGetHostByAddr(),gethostbyname()

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航