私のプログラムにIPv6サポートを追加したいと思い、奇妙なエラーが発生しました。私は接続を受け入れるソケットを開きたい。 info
でsocket()コールからのエラー
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 */
}
I GEN非NULL結果:
まず私はソケットの設定を見つけるにはgetaddrinfo()を使用します。ここに私のシナリオです。それから私は、ソケットを作成したい:
ここsocket(info->ai_family, info->ai_socktype, info->ai_protocol)
私はバインドすることができ、私はそれがNULLを返すことを期待するgetaddrinfo()
リターンがアドレスのみと考え-1
strerror(errno)
戻りAddress family not supported by protocol
を取得しますこの場合。私は何が欠けていますか?
私のeth0には現在IPv6アドレスがないことを追加したいと思います。私はuClibcを使用しています。
あなたは何を求めているのですか?そうでなければ 'hint.ai_family = AF_INET6; 'を削除してください – ydroneaud