Client/serveur ( comment dedoubler un meme programme en client et serveur)
herve_blondel
Messages postés8Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention 7 décembre 2004
-
20 févr. 2004 à 18:12
herve_blondel
Messages postés8Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention 7 décembre 2004
-
26 févr. 2004 à 14:52
salut a tous !
je suis entrain de faire un projet de simulateur du protocol RIP et voici ce qui me casse la tete.
en fait, sur un poste je dois simuler plusieur routeurs connecte entre eux. donc chaque routeur a une partie client et une partie serveur. voici ce que j'ai donc bricole.
....
.....
/*
definition des variable globale ici
....
*/
int main{
/*
definition de qques variable locale
*/
if(!fork()){
partie ou fonction qui sert de client:
ici,chaque 30 seconde,le client envoi un message au serveur
d'un autre routeur.
dont ici,il y'a une boucle infini.
c'est pourkoi j'ai dedoubler le programme avec fork().
}
{ partie du serveur
/*
initialisation des donnes pour le serveur.
*/
while(1){
accepte la connection cree un fils qui traite la requete
et retoune attendre les connextions.
if(!for()){
le fils execute la tache et se termine.
}
}//fin du serveur
}// fin du programme.
mon probleme est que lorsque j'utilise fork() pour dedoubler le programme en serveur et client, je constate qu'il y'a vraiment separation ( et je ne voulais pas que ce soit ainsi) car les variables globales modifiees par le client ne sont pas vus par le serveur et vice versa. tout ce passe comme si j'avais deux programmes distint pourtant,mon serveur doit utiliser les variable goblale modifier par le client: comme faire ? j'ai aussi entendu parler des threads mais je ne sais pas comment ca fonction ni comment l'utiliser.
je voudrais que quelqu'un me fasse une eboche d'un programme qui se divise en deux mais chaqu'une des parties pouvant modifier une meme variable globale( pas une copie de la variable).
merci et excusez moi de la longueur.je suis un debutant en c++.
A voir également:
Client/serveur ( comment dedoubler un meme programme en client et serveur)
dans ce petit code, apres la duplication du programme, la variable g_v1 modifiee(incrementee)dans le premier while n'ai pas vu dans le second while(en fait,dans le second while,l'affichage est toujours 0) mon pb c'est que je voudrais que la modification de g_v1 soit vu dans les deux while.
s'il y'a une idee,n'esiter pas. merci.