select() bzw threads
-
Hi.Leute bin gerade an einem Webserver in c++ dran.
Nun haber ich im Prinzip die TCP Sockets und alles drum dran programmiert.
Nur können im moment nicht mehrere Clients darauf zugreifen, ich wollte fragen ob ihr irgendwelche gut tutorials kennt für die Anwendung von select bzw. threads ?
-
Hallo,
wieso nicht?
// So oder so ähnlich ServerSocket->Connection[1]; ServerSocket->Connection[2]; // usw.
LG, Micha
-
=> Tutorial Teil 4, Mehrere Clients mit select
-
Du hast doch erst einen Thread zu diesem Thema gemacht.
Hier gerne noch mal eine Zusammenfassung:
+---------------+-------------------------------+---------------------------+ | Methode | Windows | Linux | +---------------+-------------------------------+---------------------------+ |nob-blockable | Server mit Sleep schlafen legen, sehr unperformant | +---------------+-----------------------------------------------------------+ |select | grundlegend performanter, plattformunabhängig aber | | | begrenzte Verbindungsanzahl (Win: 64, Linux 1024) | +---------------+-----------------------------------------------------------+ |Prozesse | Prozessverwaltung ist meistens sehr langsam | +---------------+-------------------------------+---------------------------+ |Threads |I/O Completion Ports | weniger performant, | | |die performanteste Windows | ähnlich wie Prozesse | | |Methode für Multitasking- | | | |Clients | | +---------------+-------------------------------+---------------------------+ |Polling | erst ab Vista | dev/poll ist performant | | | nicht wirklich performant | beste Lösung: dev/epoll | +---------------+-------------------------------+---------------------------+
http://bulk.fefe.de/scalable-networking.pdf
http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx
http://linux.die.net/man/4/epollUnd viiieeel Google benutzen.
-
ich glaube da wo accept steht meinte er select
-
Hoppla, ja. Habe ich geändert. Danke
-
Ad aCTa schrieb:
+---------------+-------------------------------+ |Polling | erst ab Vista | | | nicht wirklich performant | +---------------+-------------------------------+
Welches neue Polling für Vista?
Ad aCTa schrieb:
Und viiieeel Google benutzen.
"Polling" ist leider nicht googlebar. Kannst Du einen dazugehörigen Winapi-Befehl nennen?
-
Die Funktion
WSAPoll()
. Ich war selber überrascht, steht aber da:
http://msdn.microsoft.com/en-us/library/ms741669(VS.85).aspx
-
Ad aCTa schrieb:
Die Funktion
WSAPoll()
. Ich war selber überrascht, steht aber da:
http://msdn.microsoft.com/en-us/library/ms741669(VS.85).aspx^^das ist zum leichteren portieren von programmen, die die bsd-socket 'poll()' funktion benutzen. 'overlapped' I/O ist unter windowsen immer noch der bevorzugte weg.