के साथ "अमान्य तर्क" देता है मेरे पास यह सरल क्लाइंट-सर्वर एप्लिकेशन जोड़ी है। कोड बहुत आसान है, मैं केवल नए, सलाहकार तरीकों का उपयोग कर रहा हूं जैसे getaddinfo आदि और सब कुछ आईपीवी 4 के लिए ठीक काम करता है। आईपीवी 6 लूपबैक (:: 1) के लिए भी यह काम करता है। जब कुछ अन्य आईपीवी 6 पते की बात आती है तो समस्याएं शुरू होती हैं ... मेरे पास नेटवर्क में दो मशीनें हैं, जब मैं अपने आईपीवी 4 पते पास करता हूं तो सबकुछ ठीक काम करता है, लेकिन जब मैं अपना क्लाइंट आईपीवी 6 पता देता हूं, तो मुझे कनेक्ट फ़ंक्शन पर एक त्रुटि मिलती है: अमान्य तर्क । अरे, क्या मुझे पहले से ही यह पता नहीं है? मैं करता हूँ! मैं ping6 इस IPv6 पता करने के लिए प्रयास करते हैं, मैं एक ही त्रुटि मिलती है:कनेक्ट() ipv6 पता
connect: Invalid argument
लेकिन वहाँ एक तरह से इस ब्लॉक से उबरने के लिए है - एक एक मैं स्विच के साथ एक इंटरफेस का चयन करना चाहिए और यह सब आसानी से के बाद से चलाता है फिर। लेकिन मैं अपने क्लाइंट ऐप में इसे कैसे प्राप्त कर सकता हूं? मुझे क्या करना चाहिए? मेरे क्लाइंट कोड इस तरह दिखता है:
struct addrinfo hints;
struct addrinfo *server;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
int status;
if((status = getaddrinfo(argv[1], argv[2], &hints, &server) != 0))
{
perror("getaddrinfo error");
return 1;
}
int sock_fd;
struct addrinfo *ptr;
for(ptr=server;ptr!=NULL;ptr=ptr->ai_next)
{
if((sock_fd = socket(ptr->ai_family,ptr->ai_socktype,ptr->ai_protocol)) == -1)
{
perror("socket error");
continue;
}
if(connect(sock_fd, ptr->ai_addr,ptr->ai_addrlen) == -1)
{
perror("connect error");
continue;
}
break;
}
यह समस्याग्रस्त पता क्या है जो पिंग अस्वीकार करता है? – Ariel
मैं अपने नेटवर्क में दूसरी मशीन को पिंग कर रहा हूं लेकिन यह सभी आईपीवी 6 एड्रेस के लिए भी काम करता है - इसे जांचें: http://lists.debian.org/debian-ipv6/2005/06/msg00044.html – flyjohny
@flyjohny शायद आप अपने मार्गों को जांचना चाहिए कि डिफ़ॉल्ट मार्ग एक आईपी 6 रूट कमांड है: "रूट-ए इनसेट 6" –