alors j'ai fait un projet en socket d'abord en MFC avec CSocket, CArchive etc...
Le client/serveur marche, mais je le trouve pas très stable, surement lié au fait que je ne connais pas trop le réseau
Mais qu'à cela ne tienne, je me mis au WinSock du coup pour essayer une alternative
Alors tout marche bien. Côté serveur j'ai :
- initialisation de WinSock
- création d'une socket avec les infos nécessaires
- bind sur l'adresse et le port
- listen
- accept
- affichage de l'ip du client
- close socket
- CleanUp de WinSock
en gros pour simplifier, le serveur n'attend qu'une seule et unique connexion et affiche l'ip qui a tentée de se loguer puis se coupe
la version client marche aussi :
- init, création de socket
- connect sur l'ip et le port du serveur
- close, cleanup
et ça marche (c'est beau l'informatique)
Mais voila, au dela de la connexion qui fonctionne, j'ai un probleme lié à la fonction "accept".
Elle attend qu'une connexion arrive, et tant que ce n'est pas le cas, elle bloque le processus du serveur en cours, ce qui a notamment pour effet de stopper l'affichage. Ce qui est plutôt gênant, vu que j'utilise une fenêtre de diagnostique pour afficher des états (calculs en cours, nombre de connexion, etc)
Existe t il une alternative pour "tester" si quelqu'un tente de se connecter plutôt que d'attendre dans le vide obligatoirement jusqu'à ce que quelqu'un viennent, histoire de n'enclencher le accept que lorsqu'il est utile pour pouvoir faire autre chose en même temps que cette attente ?
Partager