• Linux网络编程 gethostbyaddr()


    C语言函数
      概述:
      返回对应于给定地址的主机信息。
      #include <winsock.h>
      struct hostent FAR *PASCAL FAR gethostbyaddr(const char
      FAR * addr, int len, int type);
      addr:指向网络字节顺序地址的指针。
      len: 地址的长度,在AF_INET类型地址中为4。
      type:地址类型,应为AF_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()
  • 相关阅读:
    运行带参数的python脚本
    调用其他python脚本文件里面的类和方法
    快速学会在JSP中使用EL表达式
    理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递
    理解JavaWeb项目中的路径问题——相对路径与绝对路径
    hdu4417(Super Mario)—— 二分+划分树
    hdu4325-Flowers-树状数组+离散化
    poj3321-Apple Tree(DFS序+树状数组)
    数据的离散化
    POJ2676 – Sudoku(数独)—DFS
  • 原文地址:https://www.cnblogs.com/zendu/p/4988101.html
Copyright © 2020-2023  润新知