Ik ben bezig met een test applicatie waarbij ik sockets in c++ gebruik. Ik gebruik UDP (ik weet dat dit geen garanties geeft voor berichtvolgorde en of berichten uberhaupt aankomen...). Ik had al een werkende applicatie, maar nu wil ik deze IPv6 compatible maken. Daarom heb ik een server en een client applicatie geschreven om te testen hoe dit werkt. Ik kan dit alleen op localhost testen, doordat mijn intern netwerk (en mijn internet) allebei IPv4 is. Op localhost werkt deze in ieder geval.
De werkende client is hier te vinden en de werkende server hier.
Ik wil tegelijk IPv4 als IPv6 kunnen laten werken. Dit is mogelijk want sinds vista, kunnen de sockets in windows in dual stack modus werken. Toch lukt het me niet om IPv4 packets te ontvangen of te verzenden.
Voor de server zou ik naar mijn idee niets hoeven te veranderen, aangezien de ip's als ik het goed hebben binnenkomen als een IPv4 mapped IPv6 adres. Toch ontvang ik niets. Ik verwacht dat het probleem in de client zit, maar ook met een andere test applicatie, waarvan ik weet dat hij werkt, die gewoon IPv4 packets verzend, ontvangt de server geen packets.
Bij de client heb ik geprobeerd om alleen het adres te wijzigen van "::1" naar "::FFFF:127.0.0.1", maar dit lijkt niet te werken. Hij geeft aan dat verzenden gelukt is. De server ontvangt niets, maar dit kan aan de server liggen. Echter wanneer ik mijn lokaal netwerkadres van deze computer (10.200.8.2) gebruik zodat hij via de netwerkkaart gaat (zodat ik wireshark kan gebruiken), zie ik ook niets in wireshark. Wanneer ik die oudere test applicatie met alleen IPv4 gebruik, zie ik dit wel.
Ik heb ook nog met verschillende combinaties van de familytype zitten proberen bij het verzenden. Soms geeft dit hetzelde als nu, andere combinaties zorgden voor een error bij het verzenden.
Weet iemand hoe ik dit kan oplossen, of is hetgeen ik probeer toch niet mogelijk en begrijp ik de werking van dual stack sockets niet goed? Alvast bedankt!
De werkende client is hier te vinden en de werkende server hier.
Ik wil tegelijk IPv4 als IPv6 kunnen laten werken. Dit is mogelijk want sinds vista, kunnen de sockets in windows in dual stack modus werken. Toch lukt het me niet om IPv4 packets te ontvangen of te verzenden.
Voor de server zou ik naar mijn idee niets hoeven te veranderen, aangezien de ip's als ik het goed hebben binnenkomen als een IPv4 mapped IPv6 adres. Toch ontvang ik niets. Ik verwacht dat het probleem in de client zit, maar ook met een andere test applicatie, waarvan ik weet dat hij werkt, die gewoon IPv4 packets verzend, ontvangt de server geen packets.
Bij de client heb ik geprobeerd om alleen het adres te wijzigen van "::1" naar "::FFFF:127.0.0.1", maar dit lijkt niet te werken. Hij geeft aan dat verzenden gelukt is. De server ontvangt niets, maar dit kan aan de server liggen. Echter wanneer ik mijn lokaal netwerkadres van deze computer (10.200.8.2) gebruik zodat hij via de netwerkkaart gaat (zodat ik wireshark kan gebruiken), zie ik ook niets in wireshark. Wanneer ik die oudere test applicatie met alleen IPv4 gebruik, zie ik dit wel.
Ik heb ook nog met verschillende combinaties van de familytype zitten proberen bij het verzenden. Soms geeft dit hetzelde als nu, andere combinaties zorgden voor een error bij het verzenden.
Weet iemand hoe ik dit kan oplossen, of is hetgeen ik probeer toch niet mogelijk en begrijp ik de werking van dual stack sockets niet goed? Alvast bedankt!