Sockets: 100 Clients
-
Hi,
ich habe mir von c-worker.ch den Server und den Client genommen. Wenn ich nun 100 Clients verbinde, dann scheint der Server ab etwa 60 Clients nicht mehr zu reagieren, weil versuche ich bei Client 100 eine Nachricht an den Server zu senden, dann kommt nichts an. Wenn der Client sich trennt, dann wird dies auch nicht erkannt, aber das mysteriöse ist: Mache ich das gleiche mit Client 2, klappt alles perfekt. Warum ist das so?
Source:
Client: http://c-worker.ch/tuts/sock.c
Server: http://c-worker.ch/tuts/sockselectsrv.cDanke für die Hilfe,
Hilfloser
-
Vermutlich weil "MAX_CLIENTS" auf 10 steht? und das Beispiel nicht für mehr als 10 gedacht war?
-
Jochen Kalmbach schrieb:
Vermutlich weil "MAX_CLIENTS" auf 10 steht? und das Beispiel nicht für mehr als 10 gedacht war?
Quatsch
Ich habe es natürlich abgeändert 
Inzwischen habe ich aber die wirklich Ursache für das mysteriöse Problem gefunden. Es gibt nämlich ein Limit bei 63.
Die Lösung:
#ifdef FD_SETSIZE #define FD_SETSIZE 101 // 100 Verbindungen #endif #include <winsock.h> // ...Viele Grüße,
Hilfloser
-
Das hängt das mit select(..) zusammen:
http://msdn.microsoft.com/en-us/library/ms740141.aspxSimon
-
Hilfloser schrieb:
Inzwischen habe ich aber die wirklich Ursache für das mysteriöse Problem gefunden. Es gibt nämlich ein Limit bei 63.
Das wird in den Tutorials aber erklärt
