《UNIX网络编程01》 第十一章 高级名字与地址转换 getaddrinfo
2012-11-19 16:23
351 查看
getaddrinfo、gai_strerror、freeaddrinfo
#include<unistd.h> #include<netdb.h> #include<sys/utsname.h> int main() { struct addrinfo hints,*res; bzero(&hints,sizeof(hints)); struct utsname Name; uname(&Name); int nRet = getaddrinfo(Name.nodename,"ftp",&hints,&res); //int nRet = getaddrinfo("127.0.0.1","23",&hints,&res); if(0 != nRet) { printf("error:%s\n",(char*)gai_strerror(nRet)); } else { struct addrinfo *tmp = res; for(; NULL != tmp; tmp=tmp->ai_next) { struct sockaddr_in *pAddr; pAddr = (struct sockaddr_in *)tmp->ai_addr; printf("port:%d\n",ntohs(pAddr->sin_port)); printf("ai_addrlen:%d\n",tmp->ai_addrlen); printf("ai_canonname:%s\n",tmp->ai_canonname); printf("ai_family:%d\n",tmp->ai_family); printf("ai_flags:%d\n",tmp->ai_flags); printf("ai_protocol:%d\n",tmp->ai_protocol); printf("ai_socktype:%d\n\n",tmp->ai_socktype); } freeaddrinfo(res); } return 0; }
相关文章推荐
- 《UNIX网络编程01》 第十一章 高级名字与地址转换 gethostbyname_r、gethostbyaddr_r
- 《UNIX网络编程01》 第十一章 高级名字与地址转换 getnameinfo
- 主机名与网络名查询gethostbyname,gethostbyaddr 与 高级名字与地址转换————getaddrinfo()函数详解 .
- 高级名字与地址转换————getaddrinfo()函数详解
- UNP Chapter 11 - 高级名字与地址转换
- UNP-UNIX网络编程 第十一章:名字与地址转换
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- 《UNIX网络编程01》 第九章 基本名字与地址转换 gethostbyname、gethostbyaddr、uname
- UNP卷1:第十一章(名字与地址转换)
- UNIX网络编程卷一:第十一章 名字与地址转换
- UNIX网络编程笔记 第十一章 名字与地址转换
- 第11章 名字与地址转换
- 名字和地址的转换
- UNP总结 Chapter 11 名字与地址转换
- UNP函数笔记八: 名字与地址转换
- 名字与地址(端口)转换——gethostbyname/gethostbyaddr(getservbyname/getservbyport)
- 名字与地址转换
- Unix网络编程卷1第11章 名字与地址转换getservbyname 与 getservbyport函数