maddoc2
Messages postés8Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention28 octobre 2004
-
27 août 2004 à 10:50
maddoc2
Messages postés8Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention28 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 ?
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 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.
maddoc2
Messages postés8Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention28 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.