ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

getaddrinfo函数

2019-04-21 11:50:06  阅读:266  来源: 互联网

标签:getaddrinfo struct ai int addrinfo hints 函数


一、功能

  对于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,struct,ai,int,addrinfo,hints,函数
来源: https://www.cnblogs.com/soldierback/p/10744531.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有