Bonjour la communauté,
Dans ma classe Serveur, j'ai une fonction qui lance le listener,
Dans ma classe Client, j'ai une fonction qui demande une connexion au serveur.
Le pb, (sans doute "classique") c'est que si
dans le même programme je lance l'une de ces fonctions, elle garde la main en attendant l'autre qui du coup n'arrive jamais puisque le pgm est en attente... J'ai essayé de passer les sockets en mode "non blocking" mais cela ne semble pas remédier à la situation. (si ce n'est pas clair, je peux présenter les codes.
)
Je voudrais éviter le multi-threading juste pour ça (le pgm n'en a pas besoin par ailleurs).
Existe-il une idée rusée pour que la socket "locale" puisse appeler le serveur lorsque celui-ci attend en mode listener ?
Sinon, je pense modifier la fonction d'appel de connexion pour le cas particulier de la socket "locale" et l'ajouter au selecteur et son pointeur au vector listant les pointeurs sur les socket en passant son adresse ainsi :
dans Server.cpp
code supprimé pke toufo ^^
dans Client.cpp (avec include de serveur.h dans client.h et &serveur passé argument de la fonction)
code supprimé pke toufo ^^
Un tel code visant donc :
- à connecter la socket locale au serveur,
- à ajouter la socket locale au selecteur du serveur et
- à ajouter son pointeur au vector listant les pointeurs sur les socket connectées
fonctionnerait-il?
Merci de m'avoir lu,
Rick.