OVH Cloud OVH Cloud

Socket IPv4/6

3 réponses
Avatar
Delf
Bonjour, encore moi.

Dans un programme, j'utilise les sockets:

...
socket(AF_INET6, SOCK_STREAM, 0);
...
memset(&m_Address, 0, sizeof(m_Address));
m_Address.sin6_family = AF_INET6;
m_Address.sin6_port = htons(port);
m_Address.sin6_addr = in6addr_any;
...

Sous FreeBSD, je n'accède au serveur qu'en IPv6, sous Debian, ça marche
aussi bien en IPv4 qu'en IPv6...

Comportement normal ? Dois-je créer un socket en AF_INET ?
Merci.

--
Delf
Do not use this email in Cc!
A New York les taxis sont jaunes, à Londres ils sont noirs et à Paris
ils sont cons.

3 réponses

Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:4457958e$0$19954$,
*Delf* tapota sur f.c.o.unix :

Bonjour,

Dans un programme, j'utilise les sockets:

...
socket(AF_INET6, SOCK_STREAM, 0);
...
memset(&m_Address, 0, sizeof(m_Address));
m_Address.sin6_family = AF_INET6;
m_Address.sin6_port = htons(port);
m_Address.sin6_addr = in6addr_any;
...

Sous FreeBSD, je n'accède au serveur qu'en IPv6,


Normal, car vous avez demandé à la socket d'écouter sur l'adresse spéciale
:: (in6addr_any, toutes les adresses IPv6).

sous Debian, ça marche aussi bien en IPv4 qu'en IPv6...


« Normal » aussi. En effet, le comportement sous Linux avec in6addr_any
différe des *BSD et autres unix. Sous Linux, quand une socket écoute sur
l'adresse spéciale ::, elle écoute aussi sur l'adresse spéciale 0.0.0.0 à
moins de spécifier l'option IPV6_ONLY à la socket.

Dois-je créer un socket en AF_INET ?


Si le but est d'écouter aussi bien en IPv6 et en IPv4, oui.

--
Sébastien Monbrun aka TiChou

Avatar
Delf
Sébastien Monbrun aka TiChou wrote:

« Normal » aussi. En effet, le comportement sous Linux avec in6addr_any
différe des *BSD et autres unix. Sous Linux, quand une socket écoute sur
l'adresse spéciale ::, elle écoute aussi sur l'adresse spéciale 0.0.0.0
à moins de spécifier l'option IPV6_ONLY à la socket.


Ah ok, c'est plus clair :)

--
Delf
Do not use this email in Cc!
A quoi bon soulever des montagnes quand il est si simple de passer par
dessus ?

Avatar
Delf
Delf wrote:

Ah ok, c'est plus clair :)


Merci :)

--
Delf
Do not use this email in Cc!
A New York les taxis sont jaunes, à Londres ils sont noirs et à Paris
ils sont cons.