djtexas
Messages postés20Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 9 mai 2006
-
27 janv. 2004 à 12:16
vinceVD
Messages postés11Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention26 mai 2005
-
15 juin 2005 à 13:16
Voila, dans le cadre d'un enrichissement de mes connaissances sur la maitrise des sockets en C, je me retrouve confronté à un pb, en effet j'ai developpé un serveur TCP (peu importe ce k'il fait, lol) mais je me retrouver confronté à la limite des 64 evenements WSA (61 Clients + 3 evenements winsock) j'aimerais savoir comment faire pour dépasser cette limite (idiote)...
j'avais pensé encacpuler mon select dans un thread, et refaire un nouveau thread tout les 60 clients avec un FD différent, j'aimerais avoir votre avis, merci... ou si quelqu'un à déjà résolu ce pb qu'il/elle m'indique la démarche
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 27 janv. 2004 à 18:22
Salut,
Avec le modele select():
Cette limite est fixée par la constante FD_SETSIZE dans winsock2.h.
Il suffit donc de mettre
#define FD_SETSIZE 256
pour pousser la limite a 256.
djtexas
Messages postés20Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 9 mai 2006 28 janv. 2004 à 07:46
je suis sur le modèle "select();" mais utilise pour des raisons techniques le winsock.h et pas le winsoch2.h, et la constante FD_SETSIZE n'as aucun effet...
vinceVD
Messages postés11Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention26 mai 2005 15 juin 2005 à 13:16
Je viens de tomber sur le meme problème (plantage quand on arrive a 60 clients) et avec votre astuce de la modif du FD_SETSIZE sa ne marche toujours pas. J'ai bien testé s'il me prennait la nouvelle valeur et c bon (si j'ai pas 128 je me kill) et mon programme tourne. Sa marche vraiement a tous les coups cette astuce ou y a-t-il qqchose de plus a faire