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()取消了.
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章