请教socket编程中getnameinfo的用法问题

 我来答
xpieanog
2015-06-22 · TA获得超过1497个赞
知道大有可为答主
回答量:1920
采纳率:66%
帮助的人:484万
展开全部
话说getnameinfo是自己的接口吧,鬼知道这个接口返回的结构是什麼样子的。
荧惑墟
2017-12-04 · TA获得超过187个赞
知道答主
回答量:140
采纳率:0%
帮助的人:27.3万
展开全部

域名解析用的

  • /** 

  • * getnameinfo() 

  • * OS: 尘友含Ubuntu 11.04 Server 

  • * for other examples, see man getnameinfo page 

  • */  

  • #include <stdio.h>  

  • #include <stdlib.h>  

  • #include <netdb.h>  

  • #include <arpa/inet.h>  

  • int main(int argc, char *argv[])  

  • {  

  • struct sockaddr_in sa_in;  告衫

  • char host[NI_MAXHOST], service[NI_MAXSERV];  

  • int flags;  

  • int err;  

  • sa_in.sin_family = AF_INET; // IPv4  

  • sa_in.sin_port = htons(2049);   // the port of NFS  

  • inet_pton(AF_INET, "127.0.0.1", &sa_in.sin_addr.s_addr);    // "220.181.111.86" is the address of baidu.com  

  • flags = 0;  // NI_NUMERICHOST | NI_NUMERICSERV  

  • err = getnameinfo((struct sockaddr *)(&sa_in), sizeof(struct sockaddr),  

  • host, sizeof(host), service, sizeof(service), flags);  

  • if(err != 0)  

  • {  

  • gai_strerror(err);  

  • exit(EXIT_FAILURE);  

  • }  

  • printf("host=%s, 派笑serv=%s\n", host, service);  

  • return 0;  

  • }  

  • /* 

  • $ ./a.out 

  • host=localhost, serv=nfs 

  • $ ./a.out 

  • host=220.181.111.86, serv=nfs 

  • */  

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式