Od Beej's Guide to Network programmingJakie byłyby wady/zagrożenia związane z używaniem AF_UNSPEC?
można zmusić go do używania IPv4 lub IPv6 w dziedzinie ai_family albo zostawić je jako wartość AF_UNSPEC używać cokolwiek. To jest fajne, ponieważ twój kod może być agnostyczny w wersji IP.
Jak sam tytuł mówi - co byłoby wady (lub ryzyka, jeśli w ogóle) zawsze za pomocą AF_UNSPEC
, zamiast określania IPv4 lub IPv6?
A to tylko z jednego powodu - jeśli określona jest wersja, to gwarantuje, że ta i tylko ta wersja jest obsługiwana?
Nieco background - myślę o dodanie wsparcia dla protokołu IPv6 w klient-serwer (C++) aplikacji i obie wersje powinny być wspierane. Zastanawiałem się więc, czy można użyć AF_UNSPEC
, czy lepiej "rozpoznać" adres z ciągu i użyć AF_INET6
lub AF_INET
, w zależności od adresu.
Dzięki. Zmieniłem jeden z tagów na 'unix'. Moje pytanie dotyczy więc Linuksa. Próbowałem z 'AF_UNSPEC' i wydaje się, że działa idealnie dla obu wersji. Zastanawiałem się, czy mogę po prostu użyć tego w ten sposób, lub lepiej poradzić sobie z kilkoma gniazdami. –
Spójrz na http://stackoverflow.com/questions/8113805/usage-of-getaddrinfo-with-ai-passive. Napisałem o tym wniosek ... – glglgl
Ah, widzę teraz. Zajęło mi tyle czasu, aby zrozumieć, co dokładnie masz na myśli: D Jestem po prostu trochę nowy w programowaniu sieciowym. Dzięki, +1 i zaakceptowany (nawet jeśli to nie odpowiada na pytanie w tytule, ale pomogło mi oczyścić umysł :)) –