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++Builder Discussion :

Probleme TClientSocket - TServerSocket


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 28
    Par d�faut Probleme TClientSocket - TServerSocket
    Bonjour � tous,

    Un petit probleme avec la communication par socket !

    Je lance � partir d'une application cliente, une autre application serveur, sur le clic d'un bouton "Envoi", et je voudrais communiquer avec elle.

    Lors de la connection de ma socket cliente ( ClientSocket1->Active = true ), je voudrais de suite envoy� un message � mon serveur.

    Code Client :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TfrmClient::btnEnvoiClick(TObject *Sender)
    {        ShellExecute(Handle,"open","ServeurMail\\ProgServeur.exe",NULL,NULL,SW_SHOWNORMAL);
     
            ClientSocket1->ClientType = ctNonBlocking;
            ClientSocket1->Active = true ; 
     
            ClientSocket1->Socket->SendText("Test");
    }
    Code Serveur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TfrmServeur::ServerSocket1ClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
            AnsiString recept ;
            StatusBar1->SimpleText="Dialogue en cours" ;
            recept = Socket->ReceiveText() ;
            ShowMessage("reçu : "+recept);
    }
    Du cot� de la Form Serveur, j'active la socket sur le OnActivate de la fenetre.

    Mon probl�me est que je ne re�ois pas le premier coup, la chaine de caracteres "test", envoy� par mon client, juste apr�s sa connexion ...

    En revanche si sur ma Form du client, j'utilise la m�thode SendText, sur le clic d'un autre bouton (et apr�s m'etre connect� en ayant cliqu� sur le bouton Envoi), le texte est bien re�u par mon serveur.

    Je pense donc qu'il ya un laps de temps, entre la connexion de ma socket cliente, et le premier envoi de texte, ce qui fait que je perds la premi�re communication ...

    Est ce que je me trompe, et comment puis je y remedier ?

    D'avance merci !

  2. #2
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Juste sur le principe : comme une connexion TCP suppose plusieurs �changes entre les 2 sockets, il te faut r�pondre � l'autre partie une fois que la connexion est �tablie. Je suppose qu'un �v�nement te permet de le savoir et c'est dans cet �v�nement qu'il faut mettre ton code, et pas tout de suite apr�s la commande d'activation.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 28
    Par d�faut
    Citation Envoy� par Altau
    Je suppose qu'un �v�nement te permet de le savoir et c'est dans cet �v�nement qu'il faut mettre ton code, et pas tout de suite apr�s la commande d'activation.
    Effectivement merci, tu m'as mis sur la bonne piste, en executant le programme en mode pas � pas, je me suis rendu compte que le client n'�tait pas connect� instantan�ment apr�s l'activation de son socket ... donc le message que j'envoyais tout de suite derri�re �tait ignor� !

    Pour cela, il faut se servir de l'�venement "OnConnect", du socket

  4. #4
    Membre �m�rite
    Avatar de Interruption13h
    Inscrit en
    Ao�t 2005
    Messages
    603
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 603
    Par d�faut C++ Builder sources
    Salut !

    Esque t'as vu �a ?


    Et y en a plein d'autres sources pour ne pas avoir de probl�mes similaires ,regarde ici aussi : C++ Builder sources


    Bonne chance .

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. TserverSocket SendText() probleme
    Par jabaka dans le forum C++Builder
    R�ponses: 9
    Dernier message: 27/06/2007, 22h01
  2. R�ponses: 10
    Dernier message: 07/02/2007, 07h43
  3. TClientSocket et TServerSocket bloquant
    Par manu225 dans le forum C++Builder
    R�ponses: 2
    Dernier message: 28/01/2007, 12h13
  4. R�ponses: 2
    Dernier message: 12/10/2006, 23h36
  5. R�ponses: 7
    Dernier message: 22/05/2006, 14h44

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