IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Client/serveur dual stack


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Par défaut Client/serveur dual stack
    Bonjour,

    Je suis en train de convertir un client/serveur IPV4 en un client serveur compatible IPV4 IPV6 (en C++).

    Ce client/ Serveur communique tres bien en IPV4 seul, ou IPV6 seul. Le problème étant le suivant:

    Le serveur ouvre un socket d'écoute en IPV6 et le client ouvre un socket en IPV4 --> pb de connexion du client.(erreur WSAECONNREFUSED: ce qui je pense est logique)

    Je précise que je ne veux pas ouvrir 2 sockets d'écoute (IPV4 ou IPV6)

    J'ai essayé avec l'adresse IPV4 mappé IPV6 chez le client mais message d'erreur WSAEHOSTUNREACH dans ce cas la.

    Comment faire

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Ce que tu cherches a faire n'est pas possible. Du moins pas comme tu le fais : tu ne peux pas attendre une connexion d'un type, et si c'est un autre type faire autre chose.

    Renseignes-toi sur 6to4 (ou 4to6), ou encore mieux essaye de regarder les serveurs qui attendent une socket sans preciser le type IP : ca se fait tres bien, et ca devrait repondre a tes questions.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre régulier
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Par défaut bonjour
    et merci de ta réponse.

    Pour info pour ouvrir la socket de mon serveur j'utilise AF_UNSPEC avec getaddrinfo, il me renvoie donc 2 résultats: addrinfo en IPV6 et une en IPV4.
    Comme mon systeme supporte IPV6 il ouvre celle en IPV6.

    Et si je mets directement AF_UNSPEC pour la création de la socket (cad socket(AF_UNSPEC,SOCK_STREAM, 0)) la méthode me renvoie INVALID_SOCKET.

    Je ne comprends pourquoi le client n'arrive pas à se connecter au serveur lorsque je force son adresse IPV4 en IPV6???

    La solution serait de créer 2 sockets au niveau du serveur une en IPV4 et une en IPV6 mais cela est très contraignant dans mon code...

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Si je comprends bien, tu voudrais avoir deux sockets connectees, l'une en IPv4 et l'autre en IPv6 (deux clients distincts, un meme serveur) ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre régulier
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Par défaut
    Bon c'est bon j"ai ma solution:

    il faut bien que mon serveur ouvre 2 sockets l'une en IPV4 et l'autre en IPV6 car je suis sous Windows XP et qu'il ne gère pas le dual stack (il ne gère pas l'option IPV6_V6ONLY nécessaire pour n'ouvrir qu'une socket IPV6 sur le serveur qui gèrera les clients IPV4 et IPV6).

    Si cela vous interesse vous trouverez le code et un tuto ici : http://livre.g6.asso.fr/index.php/Pr...plications_bis
    Cela m'a bien aidé.

    Merci quand même.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 15h53
  2. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57
  3. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo