Winsock -> limite

cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004 - 18 juil. 2003 à 08:15
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 26 juil. 2003 à 23:17
Salut a tous.

Voila, j'ai fait un serveur multiclient sous windows,
et il s'avere que j'ai une limite, je pense software,
mais qui ne vient pas de mon programme.

Je m'explique, le serveur accepte sans aucun probleme
plus de 100 connections, et arrive a envoyer des requetes
au 100 connectes, qui eux memes les recoivent. Jusque
la aucun probleme, mais lorsque les clients envois des infos
au serveur, le serveur recois que les infos des 63 premiers
connectes. Et les autres, je sais pas ou ils partent. Et ca,
je l'ai avec n'importe quel nombre de connecte (superieur a
63).

J'ai fait des test dans tout les sens pour etre sur de ce que
je viens de dire. Je sais que sous linux on peut faire sauter
cette limite en faisant un getrlimit et ensuite setrlimit sur
RLIMIT_NOFILE, mais la je trouve pas d'equivalant.

Si quelqu'un a une idee, ou a deja eu le pb ...

d'avance grand merci.

Arno

6 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
18 juil. 2003 à 14:10
Salut,
Effectivement winsock limite le nombre de socket a 64 par defaut.
Le nombre maxi de socket est une constante FD_SETSIZE definie dans winsock2.h
Donc en théorie (j'ai jamais essayé) si tu met
#define FD_SETSIZE 128
avant #include <windock2.h>
Tu devrais pouvoir gerer tes 100 connections.

Tiens moi au courant si ca marche.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
18 juil. 2003 à 18:18
Roh la la la grand merci, ca marche nickel !
C'est vraiment super. Je me disais aussi, c'est pas
possible que ca soit pas redefinissable.

Vraiment grand merci.

Arno
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
18 juil. 2003 à 18:47
Salut,
Content que ca marche.
Simple curiosité, je voudrais juste voir comment tu gerais les 100 connections ?
Tu utilise un tableau de socket que accept rempli au fur et a mesure que les clients se connectent ou tu as une autre technique?
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
19 juil. 2003 à 11:47
Salut,

non, pour la gestion des utilisateurs, j'ai une liste, cree en C++ (vector), et a chaque nouvelle connection je rajoute un element, et je le rempli des infos qu'il me faut. Et voila, des qu'il y a une deconnection, je recherche l'element dans la liste et je l'erase. Le tableau est pratique sous Linux, mais
sous windows, les sockets ne s'enchaine pas correctement,
elles ont des nombres pas possible, donc le mieux, je pense,
c'est de faire ue liste, comme ca, tu ne te limite pas trop,
et c'est plus facile a gerer par la suite.

Encore merci.

Arno
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
19 juil. 2003 à 13:03
Salut,
Merci.
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
26 juil. 2003 à 23:17
Salut, est ce ke ca seré possible que tu me passe ton code pour le serveur multiclient win32 si ca te dérange pas (Anacr0x@yahoo.fr) ? A vrai dire, ca m'interesse et je ne voit pas vraiment comment tu as fait (moi j'utilise un serveur fait grace a bubsock, le problème, c'est que c'est bien limité). Merci d'avance
_________________________
Heureux l'étudiant qui comme la rivière peut suivre son cours sans quitter son lit
0
Rejoignez-nous