begin process at 2008 08 29 21:47:17
1 233 910 membres
431 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Indy savoir le nombre de readln a faire ... [ Réseau & Internet / Client - Server ] (cyber37)

Indy savoir le nombre de readln a faire ... le 26/04/2008 09:36:25

cyber37
Salut a tous,
Je suis en train de refaire un programme en se moment mais je suis un peut embetter, je doit utiliser un socket BLOQUANT (obliger), j'ai donc utiliser indy, en faite sa me permetras de gerer un serveur de jeux a distance, la pluspar des commandes sonts faites car ces commandes une fois envoiller (donc writeln) necessitent 1 seul readln ... maintenant j'ai d'autres commandes un peut plus embettantes auxquelles je ne peut pas savoir combient de ligne le serveur renveras donc combient de readln je devrais faire ... meme apres avoir poser le composants de la palette indy pour pas bloquer les aplications je suis embetter puisque quand on stope le programme sa provoque 5 erreurs ...
Car si je fait 1 readln en trop sa rame bien plus !

Donc je voulais savoir si il y a une commande pour savoir le nombre de ligne que le serveur a envoiller avant de faire un readln (si yen a trois par exemple, ma procedure feras 3 readln ...) j'ai deja essailler de faire avec le reglages "connexion time out" de indy client TCP mais sa provoque un message "connexion time out"  mais au moin sa amrche mais voila ya un message ...

Donc voila,
Cordialement cyber37
@+
Et merci.

Re : Indy savoir le nombre de readln a faire ... le 26/04/2008 11:56:19

OcHre
Réponse acceptée !
Salut,
si tu veux éviter l'apparition de messages d'erreur pense à utiliser les bloques

try
...
except
...
finally

qui te permettront de réagir (ou pas) suivant les erreurs générées. Sinon une solution envisageable est tout simplement d'envoyer le nombre de lignes à lire avant de les envoyer. Enfin juste une remarque, les composants indy étants bloquants font toujours plus ou moins ramer l'application cliente donc si tu veux les implémenter pour un jeu tu as, à mon avis, tout interet à le faire dans un thread.

Rions un peu en attendant la mort.


Re : Indy savoir le nombre de readln a faire ... le 26/04/2008 13:25:38

cyber37
En faite le serveur de jeux existe deja !  Et le jeu aussi dailleur c'est BF 2142 et oui en effet sa rame au debut quand toute mes procedures demandent les reponses genre une qui demande a combien est regler le feu amis, une autre demande a combien est regler le ... mais apres sa vas.

Merci de ta reponse, pour l'instant je vais la garder mais j'atted voir s'il y a d'autre reponses car toi ta reponse me vas mais sa vas juste "cacher le message d'erreur" par exemple. Pour l'instant j'attend voir s'il y a d'autres reponses et s'il n'y en a pas je ferais a ta fason.  En gros je ferais le systeme avec le readtimeout et avec ton code sa n'afficheras pas le message "connexion time out" .. .
Si non merci de ta reponse, PS j'ai trouver sa sur le net :

   1. while not FTerminated do
   2.       begin
   3.          tmp := FTCP.ReadLn('', 5);
   4.          application.processmessages;
   5.          if tmp <> '' then
   6.             begin
   7.                do_dbg (tmp);
   8.                // mettre ici votre code
   9.             end;
  10.
  11.       end;

mais a parement sa c'est pas pour indy, en faite se bout de code il est bien le seul probleme c'est de savoir si il y a la fonction "Terminated" avec le client TCP indy :-)
Je vasi essailler de voir d'ailleur, ou alors s'il y a un equivalent

Re : Indy savoir le nombre de readln a faire ... le 26/04/2008 14:23:35

OcHre
Réponse acceptée !
Désolé je n'avais pas compris que le serveur existait déjà, puisque tu es assujetti à un protocole la solution la plus fluide reste à mon avis la création de ton client dans un thread, si tu n'as jamais utilisé les threads il y a un trés bon tutorial sur ce site:

http://www.delphifr.com/tutorial.aspx?id=231

L'utilisation de threads peut paraître un peu déroutante au début mais est à mon avis indispensable quand tu utilises les composants indy et à plus forte raison si tu ne maîtrise pas la structure des paquets. Pour ce qui est de Try..Except..Finally rien ne t'empeches de gérer les erreurs et de réagir en fonction de celles-ci.

Rions un peu en attendant la mort.


Re : Indy savoir le nombre de readln a faire ... le 27/04/2008 12:41:18

cyber37
Merci beaucoup, topic clos :-),
En effet je n'avais jamais utiliser les theards, mais en revanche "try except et finally" oui.

Au revoir et merci beaucoup.


Classé sous : nombre, serveur, commandes, indy, readln

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS