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 :

TserverSocket SendText() probleme


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
    Janvier 2004
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par d�faut TserverSocket SendText() probleme
    mon proble est lorsque j'envoi plusieurs SendText() un a la file de l'autre,
    le texte recu est melanger..

    Je cherche a savoir comment faire pour m'assurer des envois separer de mes sendText()

    Merci

  2. #2
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Avril 2007
    Messages
    70
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par d�faut
    Salut,

    La premi�re solution qui me vient � l'esprit est de te faire un protocole par ex :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <debut>tachaine<fin><debut>autre chaine<fin>
    Ainsi tu ne fait qu'un seul envoie de donn�e via la socket c�ter serveur.
    Ensuite lorsque tu re�ois tes donn�es coter client tu les traite en fonction des balises <debut> et <fin>.

    Sinon tu peu essayer de faire une pause entre les envoies de texte.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    ServerSocket1->Socket->SendText="tachaine";
    ShowMessage("Message envoyée");
    ServerSocket1->Socket->SendText="autrechaine";
    ShowMessage("Message envoyée");

    A+

  3. #3
    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
    Ce comportement est �tonnant car le protocole TCP a �t� con�u pour remettre au destinataire les paquets dans le bon ordre. Si donc le destinataire r�cup�re les envois lorsqu'un �v�nement de r�ception lui dit de le faire, je vois mal pourquoi �a ne fonctionnerait pas. Peut �tre devrais-tu changer de composant.

  4. #4
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Avril 2007
    Messages
    70
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par d�faut
    C'est vrai que ce probl�me est vraiment bizar, mais je pense que cela vient du composant.

    Mais bon, je pense que se faire un petit protocole est toujours plus simple pour des �changes via les sockets.

  5. #5
    Membre confirm�

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Par d�faut
    Non ce n'est pas un probl�me du composant. (Bien que je conseillerais plus le composant ICS pour travailler avec les sockets)

    Et le comportement n'a rien de bizarre car les messages arrive bien dans l'ordre.
    Le probl�me est la concat�nation des messages.

    Et pour r�soudre ce probl�me il faut un caract�re de s�paration comme l'a montr� Galip (le caract�re de d�but n'est pas obligaoire.)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par d�faut
    J'ai r�ussi a r�soudre le probl�me en placant un Sleep() entre mes envois mais je me demande si cette technique ne gele pas le serveur le temps du sleep.

    Je me demande si en c++ il existe une fonction qui se rapprocherait de celle de javascript setTimeOut(fonction(),temps); qui serait simple a utiliser

    Merci a tous de vos reponses pr�cieuses si possible

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par d�faut
    Je me sers de SendText() du Tserver mais je me demande si SendBuffer() ne reglerais pas mon probleme pour ce cote mais serieusement je ne suis pas sur de comprendre le systeme de buffer et sa difference par rapport a celle du SendText()
    en passant j'essaie de faire un jeu de carte multijoueur j'utilise le TServerSocket car il est facile d'utilisation et le seul je connais mais si quelqun
    connais quelque chose de mieux pour mes besoins je suis preneur

  8. #8
    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
    Le Sleep n'est pas une solution, juste du bidouillage. Il faut t'arranger � n'envoyer le flux suivant que lorsque le pr�c�dent a bien �t� re�u et g�r� (accus� de r�ception). Normalement, TCP s'occupe de cela.
    J'utilise personnellement les composants ICS.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par d�faut
    salut j'ai install� les composants ics ca l'air tres complet comme composant..
    Mais sais-tu ou trouver de l'aide pour savoir comment s'en servir..
    R�ussir a envoyer des messages au clients x en particulier en tout cas le plus possible merci d'avance

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

Discussions similaires

  1. Probleme TClientSocket - TServerSocket
    Par Ju2Pom dans le forum C++Builder
    R�ponses: 3
    Dernier message: 18/03/2007, 17h04
  2. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    R�ponses: 8
    Dernier message: 06/05/2002, 19h01
  3. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    R�ponses: 19
    Dernier message: 03/05/2002, 14h50
  4. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    R�ponses: 5
    Dernier message: 02/05/2002, 10h13

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