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
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
Salut,
La premi�re solution qui me vient � l'esprit est de te faire un protocole par ex :
Ainsi tu ne fait qu'un seul envoie de donn�e via la socket c�ter serveur.
Code : S�lectionner tout - Visualiser dans une fen�tre � part <debut>tachaine<fin><debut>autre chaine<fin>
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+
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.
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.
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.)
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![]()
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![]()
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.
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
Partager