Hallo allerseits!
Ich muss ein Programm entwickeln, welches viele (größer 1000) geöffnete Verbindungen verwalten kann.
Grundsätzlicher Aufbau wäre also:
Server wartet mit accept() auf eingehende Verbindungen.
Wird eine Verbindung aufgebaut, wird diese in eine Collection einsortiert und bleibt geöffnet.
Dann wartet der Server wieder auf eine neue Verbindung.
Die erste Frage die ich mir stelle, wie viele Verbindungen kann ich annehmen und offen halten?
Und das zweite Problem: Wie verwalte ich diese Verbindungen. Ich denke ja mal nicht, dass ich für jede Verbindung einen Thread öffnen kann. Falls doch, wäre mein Problem prinzipiell gelöst.
Wenn ich also keine Threads für jede Verbindung öffnen kann, muss ich die Verbindungen regelmäßig pollen um zu sehen ob Daten angekommen sind. Nur pollen bedeutet, dass ich CPU-Zeit vergeude.
Hat jemand eine andere Idee?
Andreas
Ich muss ein Programm entwickeln, welches viele (größer 1000) geöffnete Verbindungen verwalten kann.
Grundsätzlicher Aufbau wäre also:
Server wartet mit accept() auf eingehende Verbindungen.
Wird eine Verbindung aufgebaut, wird diese in eine Collection einsortiert und bleibt geöffnet.
Dann wartet der Server wieder auf eine neue Verbindung.
Die erste Frage die ich mir stelle, wie viele Verbindungen kann ich annehmen und offen halten?
Und das zweite Problem: Wie verwalte ich diese Verbindungen. Ich denke ja mal nicht, dass ich für jede Verbindung einen Thread öffnen kann. Falls doch, wäre mein Problem prinzipiell gelöst.
Wenn ich also keine Threads für jede Verbindung öffnen kann, muss ich die Verbindungen regelmäßig pollen um zu sehen ob Daten angekommen sind. Nur pollen bedeutet, dass ich CPU-Zeit vergeude.
Hat jemand eine andere Idee?
Andreas