Application client multiple

Résolu
maddoc2 Messages postés 8 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 28 octobre 2004 - 27 août 2004 à 10:50
maddoc2 Messages postés 8 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 28 octobre 2004 - 29 août 2004 à 14:44
Bonjour,

Je débute avec les sockets. J'ai besoin que l'on me guide un peu pour créer une application dont la tâche est la suivante :

* A l'ouverture, on se connecte à une liste de serveur (entre 1 et 200),
* Pendant l'exécution, on peut envoyer des commandes à un serveur en particulier ou à tous les serveurs,
* Pendant l'exécution, les serveurs envoient régulièrement des trames (si chaque réception pouvait appeler un callback, cela serait bien) et
* A la fermeture, on se déconnecte du ou des serveurs.

Les contraintes sont :
* utilisation de Winsock2 et
* portable vers Unix.

Question :

Faut-il un thread par connexion client ?
Quelle est la structure élémentaire si chaque client a une connexion ?
Si un seul thread suffit, quelle serait la structure élémentaire ?

D'avance merci

maddoc

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 août 2004 à 18:38
Salut,
Qui a osé critiquer le design de mon site ?

Plus serieusement, y'a un bouquin pas mal qui pourra peut etre t'aider, et aussi les exemples du bouquin:
http://betouchi.free.fr/doc_et_ebook/prog_reseau/network2.chm
http://betouchi.free.fr/doc_et_ebook/prog_reseau/exemples-network2.zip

Dans le chapitre Winsock I/O Methods, Winsock I/O Models tu as le modele select qui est expliqué.
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
27 août 2004 à 11:04
Tt d'abord, portable en utilisant winsock, ca va pas etre possible, puis ce que winsock est made in microsoft. Puis apres, je crois que la reponse a un pb du mm genre avait été donnée sur le forum, tt ce dont je me souviens, c kil ne fo pas un thread par connexion client et kil existe des fonction winsock ki permettent de gerer ca, chercher sur le net ca doit se trouver. Si jme souviens bien oci, ya un cours sur le site de aardman.

Voila ++
0
maddoc2 Messages postés 8 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 28 octobre 2004
27 août 2004 à 12:07
En fouillant un peu, les fonctions posix (socket, setsockopt, htons, connect, send, recv et select) existent dans la Winsock2 avec les mêmes arguments et un fonctionnement identique donc c'est portable.

Ils restent quelques fonctions à remplacer (inet_pton et close), d'autres à ajouter (WSAStartup et WSACleanup) et les ioctls à modifier (F_GETFL et F_SETFL) donc cela ne nécessite que peu de modification (quelques #ifdef et quelques #define devraient permettre d'écrire un code unique).

Pour le site d'Aardman, il n'y a que des répertoires d'accessible et je ne sais pas où chercher.

Ce que je cherche maintenant c'est un exemple d'utilisation de select en client.

maddoc
0
maddoc2 Messages postés 8 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 28 octobre 2004
29 août 2004 à 14:44
Bonjour,

Super merci pour les liens

maddoc
0
Rejoignez-nous