Page 1 sur 1

Interruption de boucle sur serveur par un client

Publié : mer. 12/nov./2008 16:49
par Random
Bonjour

Je suis débutant donc n'hésitez pas à me dire si je ne suis pas clair.
j'aimerais développer une application client serveur via le protocole TCP/IP.
Mon serveur traite un certain nombre d'opération en boucle et j'aimerais qu'il execute une fonction lorsqu'un client lui envoit une trame.

Comment faire pour detecter l'arrivée de la trame du client alors que mon serveur traite une tierce opération (comme une sauvegarde fichier par exemple ou l'écriture dans une base de donnée ou la génération d'une carte routière etc)

En espérant avoir été clair, merci d'avance.

Publié : mer. 12/nov./2008 17:27
par Backup
pour le traitement en paralelle

tu as 2 solutions

1- les timers

2- les threads

:)

Publié : jeu. 13/nov./2008 9:17
par Random
Hum, peut être un peu plus de précision ?

timer : je mets un timer qui sort de ma boucle toutes les X ms ?
threads : heu ... c'est quoi ca ?

Publié : jeu. 13/nov./2008 11:48
par Ar-S
Dixit la doc :

Un thread est une partie d'un programme qui peut être lancée de manière asynchrone en arrière plan du programme. Cela signifie qu'il est possible d'effectuer certaines opérations longues (compression, manipulation d'images ...) sans interrompre l'ensemble du programme, et de laisser ainsi l'utilisateur effectuer d'autres tâches. Un thread s'exécute à l'intérieur du programme, il ne s'agit pas d'un autre processus. Lorsque le programme se termine, tous les threads sont détruits. Sous PureBasic, les threads sont des procédures appelées de manière asynchrone. Un thread tourne jusqu'à ce que la procédure se termine.

Tu as la demo ou une version officielle de PB ?

Publié : jeu. 13/nov./2008 13:04
par Random
demo pour le moment, ca change quelque chose ?

Publié : jeu. 13/nov./2008 13:05
par comtois
non ça ne change rien ; les threads sont disponibles dans la version démo.

Publié : jeu. 13/nov./2008 13:17
par Backup
comtois a écrit :non ça ne change rien ; les threads sont disponibles dans la version démo.

mais pas les timers !! .. :)

Publié : ven. 14/nov./2008 9:34
par Random
Auriez un petit exemple d'utilisation de threads ou timer ? (ou un petit lien qui va bien :) )
Merci pour vos infos

Publié : ven. 14/nov./2008 11:13
par comtois
Je n'ai pas testé, je ne sais pas ce que ça vaut, mais il y a un createThread dans le code :)

http://www.purebasic.fr/english/viewtop ... eatethread

Tu peux lancer une recherche sur le mot CreateThread, tu trouveras pleins d'exemples.

Publié : ven. 14/nov./2008 12:42
par Backup
bouton recherche avec le mot "Timer"

et voila !!

le fait est que les Timers peuvent t'aider , mais c'est pas la methode la plus simple !!

j'ai pensé timer, parcequ'il est relativement facile de se faire un noyaux
multitache grace au timers ....

seulement cela fait appel a une certaine façon de penser , qui sort surement du cadre de ce que tu veux obtenir....

fait une recherche sur les threads ce sera plus simple... :)

Publié : ven. 14/nov./2008 15:07
par Ollivier
Un thread c'est une procédure génétiquement modifiée.