*mal in die Runde wink*
Tagchen mein erster Post,
ich beschäftige mich erst seit einigen Tagen mit JAVA. Soweit so gut, habe einen Multithread Server hinbekommen der auch schon Rückgabe aus mySQL Tabellen liefert (funktionierender Login)... Funktioniert alles wunderbar.
So, ich möchte gerne...
a) Globale Variablen
Ich lese Einstellungen wie zb den PORT auf dem der Server starten soll aus einer "server.porperties"... Mein Projekt habe ich in verschiedenen Packages abgelegt (Server, mySQL, usw). Wenn ich in meiner Hauptklasse nun den Wert einer Variable zuweise mit static, können die anderen Klassen in anderen Packages nicht darauf zugreifen... Die Klassen in dem selben Package aber können das. Ich würde gerade die Variablen aus meiner Porperty Datei für das ganze Projekt "globalisieren" und nicht nur für die Klassen im selben Package.... Habe ich was übersehen?
b) Eine Art "Session"
Aufbauend auf a) möchte ich gerne, wenn ein Client einen neuen Thread erstellt, in einer globalen (siehe a) Variable seine Daten in eine Art Array ablegen. Ich möchte den "Socket" und seinen "Usernamen" speichern. Hat den Sinn, dass ich später über meine eingebaute Commandline Funktion eine Broadcast Message versenden will, an alle User die in dem Array sind, also so gesehen an alle Client-Sockets. Die Usernamen möchte ich nur speichern, um später ausgeben zu können, welche (eingeloggten) User(namen) gerade mit dem Server verbunden sind.
Meine Gedanke:
- Ich glaube, dass es in Java nicht möglich ist, in einem multidimensionalen Array Objekte verschiedener Typen zu speichern? In dem Fall ja ein Socket und einen String.
- Gedacht hatte ich mir dann, 2 Arrays zu erstellen, eins das die Sockets speichert, und eins das den Usernamen speichert... Beide je mit dem selben Index, um das später zuordnen zu können. Zumindest würde ich es so im Notfall in PHP machen, aber PHP juckt es nicht, welche Typen das sind. Gehe ich den richtigen Weg, oder gibt es einen anderen, beide Objekte in einem Array zu hinterlegen?
Über eine Antwort würde ich mich freuen...
Tagchen mein erster Post,
ich beschäftige mich erst seit einigen Tagen mit JAVA. Soweit so gut, habe einen Multithread Server hinbekommen der auch schon Rückgabe aus mySQL Tabellen liefert (funktionierender Login)... Funktioniert alles wunderbar.
So, ich möchte gerne...
a) Globale Variablen
Ich lese Einstellungen wie zb den PORT auf dem der Server starten soll aus einer "server.porperties"... Mein Projekt habe ich in verschiedenen Packages abgelegt (Server, mySQL, usw). Wenn ich in meiner Hauptklasse nun den Wert einer Variable zuweise mit static, können die anderen Klassen in anderen Packages nicht darauf zugreifen... Die Klassen in dem selben Package aber können das. Ich würde gerade die Variablen aus meiner Porperty Datei für das ganze Projekt "globalisieren" und nicht nur für die Klassen im selben Package.... Habe ich was übersehen?
b) Eine Art "Session"
Aufbauend auf a) möchte ich gerne, wenn ein Client einen neuen Thread erstellt, in einer globalen (siehe a) Variable seine Daten in eine Art Array ablegen. Ich möchte den "Socket" und seinen "Usernamen" speichern. Hat den Sinn, dass ich später über meine eingebaute Commandline Funktion eine Broadcast Message versenden will, an alle User die in dem Array sind, also so gesehen an alle Client-Sockets. Die Usernamen möchte ich nur speichern, um später ausgeben zu können, welche (eingeloggten) User(namen) gerade mit dem Server verbunden sind.
Meine Gedanke:
- Ich glaube, dass es in Java nicht möglich ist, in einem multidimensionalen Array Objekte verschiedener Typen zu speichern? In dem Fall ja ein Socket und einen String.
- Gedacht hatte ich mir dann, 2 Arrays zu erstellen, eins das die Sockets speichert, und eins das den Usernamen speichert... Beide je mit dem selben Index, um das später zuordnen zu können. Zumindest würde ich es so im Notfall in PHP machen, aber PHP juckt es nicht, welche Typen das sind. Gehe ich den richtigen Weg, oder gibt es einen anderen, beide Objekte in einem Array zu hinterlegen?
Über eine Antwort würde ich mich freuen...