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

Web & réseau Delphi Discussion :

Utiliser TCP/IP


Sujet :

Web & réseau Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut Utiliser TCP/IP
    Bonjour à tous,
    j'ai deux applis Delphi qui peuvent cohabiter sur le même PC ou être sur deux PC différents. Ces deux applis ont besoin d'échanger des messages très courts d'environ une vingtaine de caractères. J'ai pensé à utiliser TCP/IP mais... je nage! D'abord, est-ce que c'est une bonne idée et ensuite y-a-t-il un tutorial ou un exemple simple se rapprochant de ce que je veux faire?
    Je dois avouer que je n'ai pas trouvé, mais j'ai peut-être pas su chercher...

    Merci d'avance,

    Robert

  2. #2
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 542
    Billets dans le blog
    10
    Par défaut
    Regardes dans le dossier CHAT qui est contenu dans ton installation de delphi ('C:\Program files\Borland\....'). Tu trouveras les premiers éléments de réponse.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut
    Merci...
    j'y cours et je reviens...

  4. #4
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 542
    Billets dans le blog
    10
    Par défaut
    Petite info. Si tu veux tester l'envoi et la réception via TCP/IP dans une même application. L'un des deux codes doit être mis dans un thread.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Regarde du côté des composants Indy. Il y a des tutoriels sur ce site, ils ne sont pas très compliqués à utiliser.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut
    Merci, je n'y connais pas grand chose, mais c'est ce qui a l'air d'être fait dans l'exemple dont tu m'as parlé...
    Mon besoin est beaucoup plus simple: il y a un programme qui "cause", et l'autre qui écoute...
    Ce n'est pas gagné pour autant, surtout que, quand ça ne veut rien savoir, c'est difficile de déterminer si c'est l'émetteur ou le récepteur qui est en cause...
    Enfin... faut bien commencer un jour...!

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Le programme qui écoute sera le programme qui embarquera le serveur (IdTCPServer). Le programme qui "cause" sera le programme qui embarquera le client (IdTCPClient). Les deux doivent dialoguer sur un même port afin que la communication se passe. Voilà un petit synopsis de communication (à deux balles, je sais) :

    Client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with TIdTCPClient1 do
    begin
      Host := '127.0.0.1'; //Machine locale
      Port := 7007; //Canal de communication choisi arbitrairement
      Connect; //Tente de se connecter au serveur
      try
         WriteLn('SAYHELLO'); //Envoie la chaine "SAYHELLO" au serveur
      finally
          Disconnect; //Déconnexion serveur
      end;
    end;
    Serveur, dans la procédure OnExecute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    LCommand := AContext.Connection.ReadLn();
    if LCommand = 'SAYHELLO' then
    begin
      //faire quelque chose
    end;

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut
    Merci beaucoup pour le "truc à deux balles". Je n'ai pas besoin de quelque chose de plus sophistiqué! Je cours essayer de suite!

    Cordialement,

    Robert

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut
    Pas de problème! c'est simple et ça fonctionne! Encore merci...
    Une dernière question, tant que j'y suis : est-ce qu'un serveur sait aussi répondre, ou bien est-ce qu'il faut inverser les rôles ? (Par exemple si le serveur doit traiter les données et renvoyer un résultat).

    Cordialement,

    Robert

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Un serveur sait bien sûr répondre. Regarde: quand ton client Web demande une page web sur Developpez.com, la page t'es renvoyé en répose sans que tu aie besoin de devenir serveur Web entre temps :-)

    Pour que le serveur réponde, il faut utiliser les méthodes WriteLn(), Write(), etc. de l'objet Connection ou IOHandler du contexte courant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AContext.Connection.WriteLn('BIEN_RECU');
    Côté client, il suffit alors d'utiliser la méthode ReadLn pour lire la réponse serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LResponse = ReadLn();
    if LResponse = 'BIEN_RECU' then...
    etc.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Par défaut
    Citation Envoyé par Reisubar
    Un serveur sait bien sûr répondre. Regarde: quand ton client Web demande une page web sur Developpez.com, la page t'es renvoyé en répose sans que tu aie besoin de devenir serveur Web entre temps :-)
    Autant pour moi...! Tu as raison, ma question était idiote!

    Merci beaucoup pour ton aide, j'ai maintenant tout ce qu'il me faut...

    Cordialement,

    Robert

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

Discussions similaires

  1. Sécuriser serveur multithread utilisant des socket tcp
    Par matthieu637 dans le forum Sécurité
    Réponses: 1
    Dernier message: 16/03/2009, 23h41
  2. utilisation socket TCP SSL
    Par psylox dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 05/03/2009, 15h43
  3. utilisation des ports en TCP/IP
    Par omekiane dans le forum Développement
    Réponses: 3
    Dernier message: 06/11/2008, 12h56
  4. déclaration et utilisation d'un buffer (pile TCP/IP)
    Par aefmaaradji84 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 27/08/2007, 09h18
  5. TCP : Utilisation paquet par paquet plutot que flux
    Par dockurt2k dans le forum Développement
    Réponses: 6
    Dernier message: 12/01/2007, 11h03

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