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

C++ Discussion :

Problème de Socket


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Par défaut Problème de Socket
    Bonjour,
    Après avoir suivi le tuto consacré au sockets, j'ai voulu tester l'exemple donné à la fin du cours : => http://c.developpez.com/WalrusSock/
    Comme j'ai 2 ordis, le server a été lancé sur l'ordi 1 et le cilent sur l'ordi 2.
    Lors de lancement du prog, mon firewall m'informe bien que l'appl demande l'acces à internet. Cependant, l'ordi 2 (client) ne recois aucun message "Hello World" de la part du server de l'ordi 1 !
    Soit il y a un probleme, soit je n'ai pas bien compris le principe. Quoi qu'il en soit, toute aide sera la bienvenue.
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il faut ouvrir dans le parfeu le port associé au serveur (dans le tuto : 23 en TCP) pour autoriser les connections entrantes au niveau du serveur
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Par défaut
    Je ne suis pas sûr que ce soit le problème, car lorsque mon firewall m'avertit que l'application demande l'accès à internet, j'ai le choix d'accepter ou de refuser ( et donc j'accepte !). Je vais tout de même essayer en désactivant mon firewall.
    Mais c'est le fonctionnement du server/client que je ne suis pas sûr d'avoir bien compris. J'ai un server et un client, qui n'ont rien en commun. Imaginon que je fasse mon server et que je le lance, quelqu'un peut très bien faire le même client que moi, et ainsi recevra un Hello World de mon server ! Et inversement. Quand à l'adresse IP donnée au server, ne dois-je pas mettre la mienne ?
    Je pige pas tout.

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Quand tu fais accepter avec ton par feu, tu autorises le client à accèder à internet... mais il faut que le serveur soit autorisé à recevoir les connections...

    pour le serveur, l'adresse que tu lui donnes, c'est le bind, c'est-à-dire les adresse qui seront autorisées à s'y connecter

    Ensuite, fait gaffe, parce que si tu prends les exemples de codes du tuto, le client ne sert pas à se connecter au serveur qui est en dessous...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Par défaut
    euh...ok, mais c'est quoi "bind" ?
    Ensuite l'adresse du client ds l'exemple est 62.250.14.6
    Il faut la remplacer par la mienne ?
    Et encore un fois, c'est quoi qui rattache le client à mon server ?
    Je créé un server, et un client. Je lance le client sur l'un de mes ordi. Imaginons que tout fonctionne bien, et que donc je reçoive le Hello World. Si toi aussi tu a le même server que moi, ne vas tu pas toi aussi recevoir le Hello World ?!
    Merci pour ton aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Par défaut
    Excuse moi, mon firewall/antivirus est McAfee et je n'arrive pas à autorisé l'accès à mon server,comme tu m'as dis de le faire. Sais-tu comment m'y prendre ? Je suis allé trifouiller les ports pour autoriser le n°23 mais je pige rien aux TCP et UDP entrants ou sortants...J'ai essayé de faire plus simple en désacivant carrément mon anti-virus mais ca ne marche pas plus.

  7. #7
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Quand on "bind" un socket, ça veut dire qu'on lui dit d'écouter les connexions entrantes pour un port donnée, et éventuellement, une IP ou un liste d'IPs données.

    tu peux le retrouver à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bind(sock, (SOCKADDR *)&sin, sizeof(sin));
    sock c'est ton socket, sin c'est le paramètre, son adresse est celle qui sera utilisée comme maque pour accepter les connections entrantes, le port est celui qui sera écouté.

    ensuite, tu as un problème de terminologie :
    l'adresse IP et le port d'un socket c'est l'adresse IP de la machine sur laquelle il est "créé", et le port c'est celui à partir duquel il envoie les données (ou les attends pour un socket serveur)

    il n'y a pas à proprement parler quelque chose qui relie les deux sockets...

    ça serait plutôt les caractéristiques du socket client qui vont décider où il va se connecter.

    quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    tu te connectes à l'adresse et au port indiqué dans sin

    s'il y a un socket en écoute derrière, c'est à dire un socket bindé sur ce port et pour l'adresse du socket client, la connection aboutit, sinon elle échoue.

    Pour ce qui est de ton parfeu, tu dois autoriser le port TCP 23 en entrant

    Pour vérifier que ça marche bien, il te suffit normalement de faire (dans une console) : sur la machine qui herberge le serveur ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet IP_de_la_machine_qui_heberge_le_serveur 23
    si tout se passe bien, tu devrais voir "Hello World" s'afficher
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

Discussions similaires

  1. Problème de sockets
    Par the_penguin dans le forum Réseau
    Réponses: 8
    Dernier message: 13/04/2006, 19h19
  2. Problême de Socket avec un applet java (RMI/policy)
    Par Vesperal dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/04/2006, 12h00
  3. Réponses: 2
    Dernier message: 26/03/2004, 09h15
  4. [Kylix] Problème de socket
    Par RaygKross dans le forum EDI
    Réponses: 1
    Dernier message: 01/03/2004, 19h41
  5. Mysql ne se lance pas problème de socket
    Par Riko dans le forum Installation
    Réponses: 5
    Dernier message: 05/02/2004, 09h28

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