2011-06-18 7 views
0

を与えるの下でIPv6用(..)を結合しないのはなぜ私はIPv6を使用しようとしています追加の複雑さとソケットプログラミングでの最初のステップを取っています:のMac OS Xのは私にエラー番号47

べきではない、この:

struct sockaddr_in6* addr = new sockaddr_in6; 
int s = socket(AF_INET6, SOCK_STREAM, 0); 
addr->sin6_addr = in6addr_any; 
addr->sin6_port = 1234; 
int ret = bind(s, (struct sockaddr*)addr, sizeof(struct sockaddr_in6)); 

私のマシン上のすべてのインターフェイスにポート1234にソケットをバインドしますか? トラブルがリターンを結合している-1およびerrnoがERRNO.Hに応じてである47 です:私は何をしないのです

#define EAFNOSUPPORT 47    /* Address family not supported by protocol 
family */ 

?あなたはaddr-を設定する必要があります

おかげ

答えて

2

> sin6_family AF_INET6または少なくとも()をバインドするためにそれを渡す前に、アドレス構造をゼロ初期化します。

+0

さて、それでした! ありがとうございます。 – kkiefer