Bonjour, après 2heures de lecture, relecture et modifications de codes j'ai enfin compris d'où venait mon problème. Avant tout voilà comment se présente mon logiciel:

La partie serveur est controlé par un "administrateur".
Lors de la connexion avec un client, l'admin peut envoyer certaine "commande" pour avoir des infos sur le pc où est "installé" le client. Ce n'est pas un virus ni un trojan mais un logiciel que je vais utiliser sur mes pc (j'en ai 3 chez moi), une sorte de gestionnaire de réseaux (en gros). Le client traite la commande et envoi une réponse.

Pour le moment on ne peut pas faire grand chose (ca viendra après), le plus important c'est que ca fonctionne (ce qui n'est pas le cas)

Les sources : http://sayro.free.fr/SamSoft/projets/Reseaux/mySock.zip

protocole.txt

C= client | S= Serveur
__________________
STAT_ON : Permet d'indiquer à l'autre que l'on est revenu.
Soit S et C connecté :
Si S envoie à C alors C recoit "S est présent"
Si C envoie à S alors S recoit "C est présent"
Soit S est connecté et C deconnecté
Aucune action possible car au moment où C est parti, une deconnexion a été effectué entre S et C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
IF C = deconnecte THEN
send to S -> "C est parti"
close connection
Idem avec STAT_OFF
__________________
STAT_EXIT:
Soit S et C connecté
Si S envoie STAT_EXIT :
code de S:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
fgets(commande, sizeof commande, stdin);
if(strcmp(commande, "STAT_EXIT")==0)
{
 send to C -> "S est parti"
 close connection
}
else
{
 send to C->commande
}
Coté C: "S est parti" -> "deconnexion avec S"
Il utilise pthread, le fichier : libpthreadGC2.a, libpthreadGC2.dll et les headers habituels.

____________________

Le problème actuel est que mon logiciel, que ce soit client ou serveur ferme la connexion après l'établiton de cette dernière en un temps record , il m'est donc impossible d'envoyer ou recevoir quoi que ce soit. En utilisant une boucle dans main (partie client et serveur), le problème est le même. En gros pour le moment :

point de vue serveur, on que le client se connecte puis ferme la connexion et relance l'attente.

point de vue client, on se connecte, on ferme, et on attant de se reconnecter.

C'est dans le main qu'il faut voir (des deux parties) mais j'arrive pas à visualiser la solution or il suffirait d'une boucle bien structurée mais je ne vois pas.

Merci d'avance