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

EDI Delphi Discussion :

[Kylix] IP d'un serveur;....


Sujet :

EDI Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut IP d'un serveur;....
    salut, je suis entrain de realiser une application client/serveur sous kylix2 avec des sockets et je voudrais que le client puisse entrer l'adresse IP du serveur dans un Edit.
    Je crois kil faut utiliser la fonction gethostbyname mais je ne sais pas comment lutiliser correctement.



    sockname.sin_addr.s_addr := inet_addr('ip du serveur');

  2. #2
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    j'ai pas compris ce que tu voulais réellement.... précise STP
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    Ben dans lapplication client, lutilisateur devra entrer ladresse ip du serveur dans un edit.

  4. #4
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    et donc ? ou est le problème ?
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    Ben il faut utiliser la fonction gethostbyname() je crois pour mettre lavaleur retournee par cette fonction dans le sin family

  6. #6
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    gethostbyname() prend comme son nom l'indique le nom de l'hote pas l'adresse ip.
    man gethostbyname
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    oui ok, mais je crois kon peut aussi mettre une ip.


  8. #8
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    utilise inet_addr() pour transformer ton ip du type "192.168.1.2" eau format binaire que tu donneras en paramètre a gethostbyaddr()
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    heuuuuu, ...
    yaurait pas une qq part une aide paske là je m'en sort plus trop avec les @, les ^ et les Pmachins.
    Une aide comme l'autre fois ou javais besoin pour les librairies???

  10. #10
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    heuuuu tu pourrais pas nous aider à t'aider parce que tu n'arrête pas de donner des bribes de tes problèmes donc on peut pas t'aider si tu donnes pas toutes les infos qui faut. A savoir
    un bout de code, une erreur, etc... du concret quoi !
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    ok, jvous donne un bout de code :

    var
    sockfd, longueur_adr : integer;
    sockname : sockaddr_in;
    sIP : string[15];
    hIP : Phostent;


    procedure TForm1.BitBtnConnexionServeurClick(Sender: TObject);
    begin

    {========== Creation de la socket =======}

    sockfd := socket(AF_INET, SOCK_STREAM, 0); -> là ca va!

    sIP := EditIP.Text; -> je rentre l'IP du serveur dans l'edit

    hIP := gethostbyaddr(@sIP, sizeof(hostent), AF_INET); -> je suis pas sur

    {==== Configuration du sin_family ======}

    sockname.sin_family := AF_INET;
    sockname.sin_addr.s_addr := inet_addr(@hIP); -> ????
    sockname.sin_port := htons(9734);

    longueur_adr := sizeof(sockname);



    {==== Connection au serveur ====}

    Resultat := connect(sockfd, Psockaddr(@sockname)^, longueur_adr);
    |->là c bon aussi!



    Voilà jespere que ca peut vous aider!!

  12. #12
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par yopziggy
    ok, jvous donne un bout de code :

    [b]
    hIP := gethostbyaddr(@hIP, sizeof(hostent), AF_INEt); -> je suis pas
    euh la forcément ca va pas marché. tu passes en argument ce que tu veux récupéré en retour !!!
    il faut mettre l'adresse de sIP !
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    ah oui, jme suis trompé !!!
    Mais sinon, tu vois rien de particulierement faux ????

  14. #14
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    le sIP en string[15] c'est pas une bonne idée
    mais le en string normale et:

    hIP := gethostbyaddr(PChar(sIP), sizeof(hostent), AF_INEt);
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  15. #15
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    ok, jvé essayer ca demain!!
    Mais quelle est la difference entre Pchar(hIP) et @hIP ??
    Je m'en sort plus trop avec tout ca et encore les ^

  16. #16
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    tout dépend su type string que tu as pour sIP
    toi tu as
    sip: string[15];
    c'est une chaîne de carctère de type Turbo Pascal :
    sIP[0] octet de longeur
    sIP[i] i eme caractère

    alors que sIP: string; (par défaut au niveau des options de compile)
    est une chaine longue, a zero terminal mais avec allocation et desallocation automatique (comteur de référence et longeur)
    bref faire un PChar(sIP) permet de transfomert la string en char* du C
    ce qui est demandé normalement par gethostbyaddr()
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  17. #17
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    C pas possible, ca marche tjs pas.

    Jte remet du code mis a jour :

    var
    hIP : Phostent;
    sIP : String;
    sockfd : integer;


    procedure TForm1.BitBtnConnexionServeurClick(Sender: TObject);
    begin

    {========== Creation de la socket =======}

    sockfd := socket(AF_INET, SOCK_STREAM, 0);

    sIP := EditIP.Text; --> je rentre ip du serveur dans edit

    hIP := Gethostbyaddr(PChar(sIP), sizeof(hostent), AF_INET);


    {==== Configuration du sin_family ====}

    sockname.sin_family := AF_INET;
    [u ] sockname.sin_addr.s_addr := inet_addr(@hIP);[/u] -> juste ou pas ???
    sockname.sin_port := htons(9734);

    longueur_adr := sizeof(sockname);

    {==== Connection au serveur ====}


    Resultat := connect(sockfd, Psockaddr(@sockname)^, longueur_adr);


    Voilà, je sais pas si la declaration de hIP en Phostent est correcte.




Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2004, 17h41
  2. [SOAP] : client en PHP, serveur en kylix + .so
    Par RezzA dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/01/2003, 16h53
  3. [Kylix] Kylix et serveur VNC
    Par ghost942 dans le forum EDI
    Réponses: 2
    Dernier message: 10/01/2003, 23h11
  4. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  5. [Kylix] Kylix ou KDevelop ?
    Par Saïd dans le forum EDI
    Réponses: 3
    Dernier message: 15/03/2002, 08h58

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