ConnectionPool

Freak2k

Erfahrenes Mitglied
Hallo,

ich habe einen Server, welcher jeder eingehenden Verbindung eine Id (int) zuweist.
Jetzt will ich einen ConnectionPool programmieren, welcher alle aktiven verbindungen hält.
Die Id wird fortlaufend verteilt...also würde im Prinzip eine ArrayList ausreichen, die Verbindungen zu halten.
Doch, wenn eine Verbindung beendet wird, würde da ein "leeres" Feld entstehen.
Also muss was her, wo die restlichen Verbindungen "nachrutschen" können, wenn ich eine entferne (beende), sie dürfen allerdings ihren alten index nicht verlieren.
Ein Hastable, in dem man als Key die Id der Verbindung verwenden könnte, wäre gut.

wie kann ich das lösen?
danke!
 
Also sowas gibt es was Du suchst Du kannst z.B. eine HashMap verwenden ebenfalls im java.util.*
so ich mich recht erinnere.

Takidoso
 
muss alles neu überdenken!
ich habe einen Server, der für jede eingehende Verbindung eine ClientConnection Klasse erzeugt.
Eine Verbindung (also eine ClientConnection Instanz) wird anhand einer eindeutigen Id oder des Benutzernames, des an der Verbindung angemeltet Benutzers identifiziert!

Ich suche nun eine Möglichkeit, diese Connections in einem Pool zu sammeln.
Ich will die Verbindung von außerhalb des Pools nur durch ihre Id oder den Benutzernamen ansprechen (beenden, daten senden....etc)

z.B: public void Disconnect(int Id);
oder: public void Disconnect(String username);

beide funktionen sollen sich also die richtige verbindung raussuchen und trennen.

Wie speichere ich die Klassen, dass ich sie anhand zweier kriterien (entweder Id oder Benutzer) schnell wiederfinden kann?

Ich hoffe, es ist verständlich.
 
benutze 2 Hashmaps :-)
eine nach ID die andere nach Benutzernamen.
die Objekte (ClientConnection) sind natürlich identisch in der einen als auch in der anderen Map.
 
Zurück