Managed I/O an TCP Sockets
-
Hallo zusammen
ich möchte an einem stream socket daten von mehreren Quellen empfangen - normalerweise würde man dafür fork benutzen, nun habe ich von managed I/O gehört (damit soll es möglich sein nächste Anfrage an den Server anzunehmen bevor vorherige Anfrage beantwortet ist)- finde aber nichts brauchbares dazu. Weiß jemand wie es funktioniert?
und noch was - wie setze ich am geschicktesten Timeout für TCP socket? (um DNS zu vereiteln)
Danke
-
Managed I/O sagt mir auch nichts. Aber was du vermutlich suchst sind Mechanismen wie select oder besser epoll (Linux)/kqueue (BSD). Gibt auch portable Bibliotheken wie libevent (C) oder boost::asio (C++) dafür.
Stichwort ist eher Scalable I/O.
-
Ich meine das hier
http://www.nightmare.com/medusa/medusa.htmlnur wäre es zu umständlich den kompletten source code zu "entschlüsseln" um die Funktionsweise zu verstehen - ich denke irgendwo muss doch das Verfahren beschrieben sein.
-
Ja, das wird wohl über etwas wie epoll laufen.
-
wird select( ) nicht eingesetzt um von multiplen ports zu lesen? D.h. wenn ich z.B. mit einem Programm 10 unterschiedliche Ports überwachen möchte, dann setze ich select( ) ein - aber in diesem fall sehe ich keinen Nutzen von dieser Funktion