hiccup
Messages postés8Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention28 novembre 2005
-
30 janv. 2005 à 15:41
simtiers
Messages postés207Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention 2 novembre 2006
-
31 janv. 2005 à 12:46
Bonjour tout le monde
Pour m'initier à la programmation réseau, j'ai voulu programmer un
logiciel simple permettant à deux utilisateurs possédant chacun son
ordinateur de communiquer. J'ai lu beaucoup de tutoriaux à propos des
sockets. Le seul probleme c'est que lorsque je souhaite savoir si mon
correspondant m'a envoyé un message, j'execute l'instruction rcv(),
mais alors tant que celui-ci ne m'a pas écrit, je ne peux pas taper mon
propre message. Le programme est bloqué jusqu'à ce que un paquet
arrive. Y a-t-il un moyen pour contourner ce problème ?
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 30 janv. 2005 à 19:54
Yep,
Mieux que les threads, utilise les sockets asynchrones.
Regarde dans mes sources, tu trouveras un exemple d'application client/serveur avec des sockets non bloquantes.
hiccup
Messages postés8Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention28 novembre 2005 30 janv. 2005 à 21:08
Merci de vos réponses
DeAtHCrAsH je suis en train de lire ton programme
utilisant les sockets asynchrones. Mais sinon, pour ma culture, c'est
quoi les threads (je travaille effectivement sous windows) ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 30 janv. 2005 à 22:20
Les threads, sont des temps processeurs.
Par exemple si un programme a besoin de lire et d'écrire en "meme temps".
Il va alors diminuer et séquencer les temps nécéssaires pour chaque tache.
Par exemple si les deux taches dure 10 secondes chacune, le processeur va diviser chacune d'entre elle en séquence d'une seconde.
Puis il va les organiser de maniere à executer la premiere tache pendant une seconde, puis ensuite la deuxieme tache pendant une seconde, puis de nouveau la premiere tache pendant une seconde, ..., et ainsi de suite jusqu'a que chacune des taches soit arriver à 10 secondes (ce qui est le temps totale pour effectuer chacune de nos taches).
En gros, le programme va répartir les temps de traitement entre les différentes taches.
Tu auras ainsi l'impression que tout s'execute en meme temps, alors qu'en fait les taches s'execute les unes après les autres mais avec de petits laps de temps.
Voila, je sais pas si j'ai été assez claire mais en gros ca résume les threads.
simtiers
Messages postés207Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention 2 novembre 2006 31 janv. 2005 à 12:46
Je pense que c'est assez clair...
Comme l'a dit deathcrash, si tu executes 2 fonctions "en même temps"
par les threads, le processeur va executer un certain nombre
d'opérations de la première et de la deuxième fonction par alternance.
Les threads sont surtout utilisés pour les annulations de gorsses
opérations (exemple : une boucle pour compter de 1 à 200000, sur un
ordi "lent", tu crées la boucle de calcul dans un thread, et un bouton
annuler, dans la fenêtre principale, qui te permettra de stopper la
boucle)