首页 > 其他 > 详细

getaddrinfo函数

时间:2019-04-21 12:43:23      阅读:186      评论:0      收藏:0      [点我收藏+]

一、功能

  对于IPv4和IPv6均适用,可以处理名字到地址以及服务到端口这两种变换,返回的是一个sockaddr结构而不是一个地址队列

二、函数原型

#include <netdb.h>

int getaddrinfo(const char *hostname, const char *service, 
                       const struct addrinfo *hints, struct addrinfo **reesult); 

    返回:成功为0,出错为非0   

(1)hostname:是一个主机名或地址串

(2)service:是一个服务名或十进制端口号数串

(3)hints:一个空指针或指向某个addrinfo结构的指针,调用者在这个结构中填入关于期望返回的信息类型的暗示

三、addrinfo结构

struct addrinfo {
    int    ai_flags;
    int    ai_family;
    int    ai_socktype;
    int    protocol;
    socklen_t          ai_addrlen;
    char                 *ai_canonname;
    struct sockaddr *ai_addr;
    struct addrinfo  *ai_next;
};

四、hints结构中调用者可以设置的成员

 (1)ai_flags;

 (2)ai_family;

 (3)ai_socktype;

 (4)ai_protocol

   其中ai_flags成员可用的标志值及其含义如下:

      技术分享图片

   如果hints参数是一个空指针,getaddrinfo函数就假设ai_flag、ai_socktype和ao_protocol的值均为0,ai_family的值为AF_UNSPEC

五、getaddrinfo函数及其行为和结果汇总

技术分享图片

getaddrinfo函数

原文:https://www.cnblogs.com/soldierback/p/10744531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!