我想補充我的程序支持IPv6和跨奇數錯誤來了。我想打開接受連接的套接字。這是我的情景:錯誤()調用
首先,我使用getaddrinfo()來查找插槽配置:
struct addrinfo hint, *info = NULL;
memset((void *)&hint, 0, sizeof(hint));
hint.ai_family = AF_INET6;
hint.ai_flags = AI_PASSIVE | AI_NUMERICSERV;
hint.ai_socktype = SOCK_STREAM;
if ((error = getaddrinfo(NULL, "1234", &hint, &info))) {
/* some error handling */
}
我代非NULL結果info
。然後我想創建套接字:
socket(info->ai_family, info->ai_socktype, info->ai_protocol)
在這裏,我得到-1
strerror(errno)
回報Address family not supported by protocol
我認爲getaddrinfo()
只返回可以綁定,我希望它返回NULL地址在這種情況下。我錯過了什麼?
我想補充一點,我的eth0沒有IPv6地址現在。我使用uClibc的0.9.32
你得到你要求什麼......否則刪除'hint.ai_family = AF_INET6;' – ydroneaud 2012-03-08 14:58:05