设为首页 加入收藏

TOP

16.2.2 数据库函数
2013-10-07 13:10:08 来源: 作者: 【 】 浏览:57
Tags:16.2.2 数据库函数

16.2.2  数据库函数

Windows Socket规范中定义了一组专门用于处理域名、通信服务和通信协议等网络信息的数据库函数。使用这些函数可以获取网络能力的检测,使用getXbyY的函数形式,含义是通过Y值获取X值。主要包括如下7个函数。

(1)gethostname()函数:返回本地主机的机器名称。其函数原型为:

  1. int gethostname(char FAR * name,    // 存放
    返回的主机名称的缓冲区的指针  
  2. int namelen);                       // 存放缓冲区的长度 

此函数返回本地主机的机器名称到name参数指定的缓冲区中,返回的主机名是以NULL结束的字符串。返回的主机名的形式,可能是简单的主机名也可能是完整的域名称。如果函数调用成功,则返回0,否则返回SOCKET_ERROR和相应的错误代码,使用WSAGet LastError()函数可以获取错误代码的值。

(2)gethostbyaddr()函数:根据网络地址获取主机信息。其函数原型为:

  1. struct HOSTENT FAR * gethostbyaddr ( const char FAR * addr,  
  2.                                            
    // 网络字节顺序的地址指针  
  3.          int len,                          
    // addr参数的长度  
  4.          int type);                         
    // 指定地址的类型 

以函数返回一个HOSTENT结构的指针,其中包含传入的网络地址对应的名称和地址,所有数据都是以NULL结束。如果返回值为NULL,表示函数调用失败。

(3)gethostbyname()函数:从主机数据库中根据主机名称获取主机信息。其函数原型为:

  1. struct hostent FAR * gethostbyname ( const char FAR * name );  
  2.         // 以NULL结束的主机名称 

以函数返回一个指向HOSTENT结构的指针,结构中的name参数中包含查询到的结果值。如果返回值为NULL,表示函数调用失败。

(4)getprotobyname()函数:根据协议名称获取协议信息。其函数原型为:

  1. struct PROTOENT FAR * getprotobyname ( const char FAR * name );  
  2.             // 以NULL结束的协议名的指针 

以函数返回name参数指定的包含协议名和协议号的PROTOENT结构指针。如果返回值为NULL,表示函数调用失败。

(5)getprotobynumber()函数:根据协议号获取协议信息。其函数原型为:

  1. struct PROTOENT FAR * getprotobynumber ( int number );  
  2.         // 要查询的协议的主机字节顺序的协议号 

以函数返回包含协议名和协议号的PROTOENT结构指针。如果返回值为NULL,表示函数调用失败。

(6)getservbyname()函数:根据服务器名和协议获取服务器信息。其函数原型为:

  1. struct servent FAR * getservbyname (  
  2. const char FAR * name,          // 指向服务器
    名称的以NULL结束的字符串的指针  
  3. const char FAR * proto);        // 指向协议名
    的以NULL结束的字符串的指针 

以函数返回包含服务名称和服务号的SERVENT结构的指针。如果返回值为NULL,表示函数调用失败。

(7)getservbyport()函数:根据端口号和协议获取服务信息。其函数原型为:

  1. struct servent FAR * getservbyport ( int port,  
  2.         // 指定网络字节顺序的服务的端口  
  3. const char FAR* proto);             // 协议名指针 

以函数返回包含服务名称和服务号的SERVENT结构的指针。如果返回值为NULL,表示函数调用失败。

上面这些函数是用于获取有关网络方面的通信、协议、域名等方面的信息的数据库函数。用户可以使用这些函数查询到socket程序所使用的网络资源信息。在socket程序中需要使用这些函数配合socket()函数完成socket通信功能。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇16.2.3 Windows扩展函数 下一篇16.2.1 套接字函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: