gethostbyaddr

gethostbyaddr()  
  简述:  
          返回对应于给定地址的主机信息。  
  #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()取消了. 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s