分类: LINUX
2010-09-04 20:29:42
函数 |
参数说明 |
const char* nodename
const char* servname,
const struct addrinfo* hints,//
struct addrinfo** res
); |
nodename:节点名可以是主机名,也可以是数字地址。(IPV4的10进点分,或是IPV6的16进制)
servname:包含十进制数的端口号或服务名如(ftp,http)
hints:是一个空指针或指向一个addrinfo结构的指针,由调用者填写关于它所想返回的信息类型的暗示。
res:存放返回addrinfo结构链表的指针
返回0: 成功 返回非0: 出错 |
结构 |
固定的参数 |
typedef struct addrinfo {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
char* ai_canonname;
struct sockaddr* ai_addr;
struct addrinfo* ai_next;
} |
ai_addrlen must be zero or a null pointer
ai_canonname must be zero or a null pointer
ai_addr must be zero or a null pointer
ai_next must be zero or a null pointer |
可以改动的参数 | |
ai_flags:AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST
ai_family: AF_INET,AF_INET6
ai_socktype:SOCK_STREAM,SOCK_DGRAM
ai_protocol:IPPROTO_IP, IPPROTO_IPV4, IPPROTO_IPV6 etc. |
参数 |
取值 |
值 |
说明 |
ai_family |
AF_INET |
2 |
IPv4 |
AF_INET6 |
23 |
IPv6 | |
AF_UNSPEC |
0 |
协议无关 | |
ai_protocol |
IPPROTO_IP |
0 |
IP协议 |
IPPROTO_IPV4 |
4 |
IPv4 | |
IPPROTO_IPV6 |
41 |
IPv6 | |
IPPROTO_UDP |
17 |
UDP | |
IPPROTO_TCP |
6 |
TCP | |
ai_socktype |
SOCK_STREAM |
1 |
流 |
SOCK_DGRAM |
2 |
数据报 | |
ai_flags |
AI_PASSIVE |
1 |
被动的,用于bind,通常用于server socket |
AI_CANONNAME |
2 |
通知gedaddrinfo函数返回主机的名字 | |
AI_NUMERICHOST |
4 |
地址为数字串 |
AI_NUMERICHOST |
AI_CANONNAME |
AI_PASSIVE |
0/1 |
0/1 |
0/1 |
chinaunix网友2010-09-07 08:59:49
Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com