begin process at 2012 02 12 13:52:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Threads + Reseau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Threads + Reseau

vendredi 7 octobre 2005 à 15:14:59 | Threads + Reseau

Zootella

Salut

Voila j'ai fait une passerelle reseau, elle connecte les clients aux serveurs qu'ils veulent.

Tout marche bien, mais le programme utilise 99% du processeur d'aprés le gestionnaire des tâches, logique puisqu'il y'a une boucle while infinie qui verifie si un client tente de de connecter ou si un client/serveur envoie un message.

Donc c'est là que les threads rentrent en actions

Mais de quelle maniére les créer ?

Faut-il en créer juste un, qui  lui va lancer la boucle while.
Faut-il créer un thread pour chaque client/serveur, donc chaque socket dans un thread.
Faut-il mettre le socket qui bind dans un thread.

Pas facile... le premier cas ne change rien : 99% du processeur

Donc d'aprés vous, quelle est la meilleur solution, y'a t'il d'autres solutions ?

Merci




vendredi 7 octobre 2005 à 15:19:52 | Re : Threads + Reseau

gamemonde

Membre Club
le premier c'est pour pouvoir toujours envoyer recevoir un message.
le deuxieme n'est pas bon vraiment car tu vas te retrouver avec trop de thread
le but est les thread, mais pour utilise select
regarde sur msnd
vendredi 7 octobre 2005 à 21:22:14 | Re : Threads + Reseau

aardman

Membre Club
Salut,
Les threads c'est la solution immediate aux problemes de sockets bloquants, mais tu peux aussi utiliser les sockets non bloquants.
samedi 8 octobre 2005 à 01:16:18 | Re : Threads + Reseau

Zootella

Je n'utilise pas de socket bloquant, mais le processeur est utiliser à 99%, donc comment
remédier à ça proprement > sans utiliser sleep().

samedi 8 octobre 2005 à 09:43:18 | Re : Threads + Reseau

victorcoasne

Membre Club
Bonjour,

Très simplement en utilisant les bloquants. J'explique :
Tu lance la fonction qui connecte le client, intercepte et traite ses messages mais dans cette fonction dès que le client s'est connecté tu lui demande de relancer cette fonction en thread ainsi il peut connecter un autre client tout en interceptant et en taitant à l'identique les messages !

Merci,

Le créateur du site http://victorlogiciels.com
samedi 8 octobre 2005 à 14:57:18 | Re : Threads + Reseau

Zootella

Salut victorcoasne,

Effectivement avec des sockets bloquants, le processeur est à 0%.

Ta solution me paraît être la bonne

Mais quand tu dis :

"Tu lance la fonction qui connecte le client, intercepte et traite ses messages mais dans cette fonction dès que le client s'est connecté tu lui demande de relancer cette fonction en thread".

J'ai bien compris le principe, mais quelle fonction faut-il lancer dans le thread ?








samedi 8 octobre 2005 à 18:10:12 | Re : Threads + Reseau

Zootella

Je dois ajouter WaitForSingleObject(...) après la creation du thread pour que ça "fonctionne" sinon mon thread reçois de mauvais données... aussi les socket sont toujours bloqués.


samedi 8 octobre 2005 à 22:18:57 | Re : Threads + Reseau

victorcoasne

Membre Club
Bonjour,

Une règle d'or c'est d'utiliser une déclaration de variable différente pour chaque connexion et de le faire en thread avec une fonction bloquante.

Caractéristique d'un thread:
Son prototype de fonction :
DWORD WINAPI lafonction(LPVOID parametre);

Son appel :
DWORD dword;
CreateThread(0,0,lafonction,(LPVOID)parametre,0,&dword);

Merci,

Le créateur du site http://victorlogiciels.com
samedi 2 mai 2009 à 21:43:00 | Re : Threads + Reseau

younadim

qu'est ce que savedire des sockets bloquants donnee des documentation
merci

 

dimanche 3 mai 2009 à 13:54:30 | Re : Threads + Reseau

victorcoasne

Membre Club
Bonjour,

Les sockets sont une librairie de gestion réseau.

Bloquante c'est à dire synchrone, ça veut dire que la fonction bloque le thread (ou le programme si il n'a qu'un thread) durant la réception ou l'envoi des données.

Pour avoir des informations sur son mode de fonctionnement voir mes sources.
Je te donne quand même le lien : http://www.cppfrance.com/codes/ENVOI-RECEPTION-FICHIERS-CLIENT-SERVEUR-DEV-CPLUSPLUS_41921.aspx

Merci et bonne prog,
@++

Victor


Cette discussion est classée dans : créer, reseau, client, thread, threads


Répondre à ce message

Sujets en rapport avec ce message

Reseau + Threads [ par bat67000 ] Salut, je fais une app de discution, le coté Client communique grace a une socket, qu'il a comme variable membre, avec l'app Server.Maintenant j'aimer question sur les threads [ par mrous ] Bonjour,je dois réaliser une fonction pour communiquer avec un composant USB.Pour cela, je pense créer un thread en priorité haute en utilisant AfxBeg Thread & Socket [ par katerson ] Bonjour tout le monde! Je travaille actuellement sur un projet serveur/client sur UDP. Mon serveur comporte 3 threads qui doivent scruter (indépenda Thread en GTK+ [ par Yunchi ] Bonjour,J'avais un projet gtk en C et il y'avait des threads dedans.J'aimerais savoir si il est possible de faire pareil avec GTK+Quand j'essaye de re programmation reseau sous c++ builder 6 rpc [ par BCK2M ] Salut.Bon je tante de realiser un projet "application de gestion d'un cyber café" comme easycafé par exemple . j'ai pus créer l'application serveur ai communication thread [ par pupuce54980 ] bonsoir tout le monde, j'ai un soucis technique j'aurais voulu savoir comment vous vous y prendraisle soucis c'est que je dévellope un programme avec Threads, Synchronize, [ par Narcissus ] Bonjour à tous ça va être ma première manifestation sur Code-Sources... lol</ Threads & Sockets appliqués au jeu [ par LA_Tupac ] Salut à tous les progueurs !!J'ouvre ce post pour receuillir des infos sur les techniques de prog reseau sous les jeux videos.Je bosse actuellement su envoyer un fichier a partir d'un reseau inconnu [ par jalbret1 ] bonjour, je recherche actuellement une solution pour envoyer un fichier (vers un site web (ex:ftp) ou email) mais sans connaitre la configuration du r Questions sur les applications multithread (dépendance des threads) [ par LaTatadu91 ] Bonjour, Je me pose quelque questions avant le développement d'une application multithread. Je n'ai que très peu de connaissances sur ce sujet, je le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales