Server mit Sockets ohne IOCP
-
Hi, ich bin gerade dabei einen Kleinen Server zu entwickeln und stoße da gerade auf ein problem mit der Anzahl der maximalen Verbindungen. Bisher läuft alles in verbindung mit Threads und der select() methode um zu gucken, welche sockets gerade Daten zum empfangen bereit haben. Leider scheint das per default auf 64 Verbindungen begrenzt zu sein und select() soll angeblich ziemlich langsamm werden wenn man das limit stark anhebt.
Da denkt man sich ja automatisch das es nicht ganz sein kann, da im Internet viele Server mit mehr als 64 Aktiven Clients laufen -> Da muss es noch was anderes geben. Gesagt getan, also Google befagt bis ich nach Stunden bei "IO Completion Ports" angelangt bin. Leider mag ich das Konzept nicht so und portabel zu Linux ist es auch nicht.
So nun endlich meine Frage
Wie verwalte ich eine große (500+) Anzahl von Benutzern über Sockets ohne IOCP?
Irgendwass muss es da doch geben?!Ps. hoffe ich bin im richtigen Forum gelandet, ansonsten bitte verschieben
Gruss
foofel
-
Nimm doch die asio Library von Boost.
Ansonsten WSAAsyncSelect oder WSAEventSelect mit einem einzigen Event für alle Sockets.
-
Hi, das mit boost klappt super, danke
-
Windows NT, 2000 and XP
Uses overlapped I/O and I/O completion ports for all asynchronous datagram_socket, stream_socket and socket_acceptor operations except for asynchronous connect.