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++

  1. #21
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Un nom de domaine ? no-ip peut t'intéresser.
    L'itération est humaine; la récursion, divine.

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    gethostname() et getpeername(). Ces deux fonctions permettent au server de se procurer des informations sur ses clients. Une adresse IP peut-être ? Mais on en ferrait quoi après ? Peut-être l'envoyer au client pour changer l'IP qu'il contient ? Ce serait compliqué je pense.
    Sinon comment attribuer un nom de domaine à mon server ? Il est sur mon ordi ! Et le no-IP ca sert à quoi concretement ? En quoi ca pourrait m'être util ?
    => Swoög : je n'arrive pas à utiliser les fichiers .a...Je pige pas comment utiliser le contenu en faite. C'est pas une sorte de DLL ? Les DLL aussi génèrent des .a.
    Merci.

  3. #23
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    gethostname() et getpeername(). Ces deux fonctions permettent au server de se procurer des informations sur ses clients.
    Seulement getpeername.

    Et le no-IP ca sert à quoi concretement ? En quoi ca pourrait m'être util ?
    C'est pour créer un nom de domaine qui pointe sur ton ip justement.

    Si ton ip est dynamique, ton pc envoit la nouvelle ip à no-ip.com
    L'itération est humaine; la récursion, divine.

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    les DLL sont dynamiques... les .a sont statiques, c'est à dire qu'il sont inclus à la compilation dans l'exécutable, tu n'en a pas besoin à l'exécution (contrairement aux DLL dont tu as besoin à l'exécution)

    comme je t'ai indiqué dans le mail, il faut les linker, (comme tu le fait normalement pour libwinsock.a, ou un nom approchant, tu as besoin d'un point .a pour utiliser les winsock normalement) ensuite, il te suffit d'inclure le/les .h

    sinon ajoute le .h et le .cpp à ton projet, ils seront intégrés lors de la compilation (normalement)...


    pour les fonctions, je t'ai parlé de gethostbyname pas gethostname, ces deux fonctions ne font pas du tout la même chose, la première te permet de récupérer l'IP à partir d'un nom de domaine (entre autre), la seconde te donne le nom de domaine d'un serveur (plus précisément : du PC qui exécute la fonction, ou du PC dont l'ip est passée en paramètre, il me semble)...


    pour le nom de domaine, tu ne l'attribut pas au serveur lui même mais au PC qui herberge le serveur, ensuite, si tu changes le PC, il te suffit de changer l'IP associé au nom de domaine, DynDNS et no-ip te permettent de faire ça.
    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 (en bas)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Ok.
    Seulement voila : je voudrais réaliser un petit chat, qui sera donc composé d'une partie server et d'une partie client. Mais ca pourra être n'importe qui qui utilisera le server, pas seulement moi ! Alors je ne vais pas aller demander aux utilisateurs du server d'aller s'inscrir à uun site de no-IP. N'y a-t'il vraiment aucun autre moyen ?
    Exemple de chat :ftp://ftp-developpez.com/c/sources/b...ts/appchat.zip

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans ce cas, tu peux également demander à ce que l'utilisateur du client rentre lui même l'IP du serveur qu'il veut contacter...
    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 (en bas)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    encore une fois, c'est pas évident... esque c'est le cas pour le chat du zip ? j'ai pas réussi à tester (bugg lors de la compilation).
    J'ai jeté un coup d'oeil aux codes et je n'ai vu aucune trace d'adresse IP. Je ne comprends pas tout le code, mais peux-tu regarder et me dire ce que tu en pense ?
    Merci.

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Ce code est propre à C++ Builder...

    il n'utilise pas les composant de l'API WinSock...

    pour faire simple, tu peux voir ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sin.sin_addr.s_addr = inet_addr("192.168.1.15"); //L'adresse IP de l'ordi du server ?!
    qu'une IP n'est jamais qu'une chaîne de caractère...

    donc tu devrais pouvoir demander l'adresse à l'utilisateur... exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    std::string IP;
    std::cout <<"Veuillez entrer l'IP du server avec lequel vous souhaitez communiquer : ";
    std::cin >>IP;
    sin.sin_addr.s_addr = inet_addr(IP.c_str()); //L'adresse IP de l'ordi du server
    Bon, évidement, ici, il n'y a aucune vérification quant à la validité de l'IP, on peut rentrer n'importe quoi
    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 (en bas)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Oui, mais on n'est peut-être pas supposé connaît l'IP du server en question...
    Je proposerais un autre solution :
    -Le server scanne l'ordi sur lequel il se trouve.
    -Il envoit au client une string correspondant à l'IP de l'ordi scanné .
    -Le prog client est automatiquement lié au server avec la nouvelle adresse IP du server.
    C'est plus compliqué à faire, mais peut-être plus simple pour les utilisateurs !

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Et comment le serveur va-t-il envoyer au client son IP ?
    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 (en bas)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    euh...ah oui j'y avais pas pensé !
    Effectivement, c'est problématique. Il faudrais que le server connaisse alors l'IP du client, mais on en revient au même problème.
    Dans ce cas là ta solution me paraît la meilleure. Si on veut que le server soit transportable d'un ordi à l'autre, y'a pas 36 solutions.

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Il y a une dernière solution mais qui devient plus lourde, c'est de faire un serveur central fixe qui se charge de répertorier tous les petits serveurs qui sont prêt à recevoir des connexions de la part de clients...

    on peut ainsi donner à chaque serveur un petit nom paramétrable, ce qui est plus simple... ensuite le client à juste à savoir le nom du serveur et à demander l'IP correspondante au serveur central...

    Mais ça demande de mettre en place une structure beaucoup plus importante
    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 (en bas)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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