synchronized mit thread und rückgabe

Status
Nicht offen für weitere Antworten.

Tallan

Bekanntes Mitglied
Hallo zusammen,

ich stehe vor folgendem Problem.

Ich hab x Clients und einen Server, wenn die Clients sich anmelden sollen sie vom Server eine SessionID bekommen. Um das Problem mit zeitgleichen Logins zu umgehen ist die login() Methode auf dem Server synchrinzied

Java:
	public synchronized void login(String login, String password, String ip) throws RemoteException
	{
		new LoginThread(login, password, ip).start();
	}

Jetzt is meine Frage wie übergebe ich dem Client am besten die SessionID?
Geplant hatte ich eigentlich im client etwas in der art

Java:
String sid = serverinterface.login(...);

wobei das durch den Thread wohl nicht geht?
alternativ wäre die möglichkeit im thread einen rmi aufruf auf dem Client zu machen und diesem die Parameter mitzugeben...
oder für den login keinen thread zu benutzen, was mir allerdings nicht sehr "sauber" wirkt.
 
S

SlaterB

Gast
dass du nicht direkt etwas zurückgeben kannst, liegt am Starten des Threads,
aber welchen Einfluss hat synchronized bei diesem Problem? ich denke keinen

zum Thread bleiben dir als Möglichkeiten:
1.
die login-Methode wartet solange, bis der LoginThread-fertig ist, z.B. mit Thread.join(),
ob synchronized usw. solange freigegeben werden kann ist ein anderes Thema, am besten nicht gleichzeitig mit RMI testen
2.
die login-Methode gibt direkt irgendeine Unique Number zurück oder einen Namen
oder der Client hat sich über ein bestimmtes Token/ IP-Adresse/ sonstwas gemeldet,

irgendwie muss eine Zuordung Login-Vorgang zu Client gemerkt werden,
quasi eine Vor-SessionID, falls die richtige SessionID nicht sofort verfügbar ist,

wenn sich der Client dann später nochmal meldet, kann über die Vor-SessionID die dann vorhandene fertige SessionID bestimmt werden ;)
 

DamienX

Aktives Mitglied
Hi!

Die Frage die sich mir stellt ist warum du ein Problem mit gleichzeitigen logins hast!
 

Tallan

Bekanntes Mitglied
Hi!

Die Frage die sich mir stellt ist warum du ein Problem mit gleichzeitigen logins hast!

weil es z.b möglich ist das sich clients von verschiedenen standpunkte mit den selben logindaten anmelden, wobei nur einer aktiv sein darf und dementsprechend der andere rausgeworfen wird. Zudem wollte ich das ganze in einem thread ablaufen lassen um falls irgendwas bei einem login schiefgeht und die methode länger brauch die anderen nicht warten müssen...
Es geht auch nicht nur um den login selbst sondern auch um weiter methoden die daten über den server aus der db abfragen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T RMI Threads und Synchronized Netzwerkprogrammierung 13
OnDemand Thread und Ratelimiter Netzwerkprogrammierung 4
F Thread "extern" beenden Netzwerkprogrammierung 3
OnDemand Linux RAM per Thread Netzwerkprogrammierung 3
V Socket Audio Clip loopen ohne neuen Thread Netzwerkprogrammierung 2
C Thread Netzwerkprogrammierung 9
platofan23 Socket Hilfe mit Socket Thread und ArrayList Netzwerkprogrammierung 6
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
S Socket ThreadPool oder Thread pro Client? Netzwerkprogrammierung 11
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
P Wie spreche ich einen Thread an? Netzwerkprogrammierung 20
M Thread Scheduler Java 5.0? Netzwerkprogrammierung 2
7 Mehrere Verbindungen gleichzeitig in einem Thread mit ApacheHTTP Netzwerkprogrammierung 7
D Socket Dynamische Socket-Thread Erzeugung Netzwerkprogrammierung 2
B Socket Thread handling / Reader init Netzwerkprogrammierung 8
Z Socket Socket-Thread falsch? Netzwerkprogrammierung 5
Helgon Socket Thread Pooling Netzwerkprogrammierung 6
M Was macht Thread, wenn er aus einem "leeren" Inputstream liest ? Netzwerkprogrammierung 5
B callback thread udp Netzwerkprogrammierung 2
D RMI und Thread Netzwerkprogrammierung 4
S Kommunikationsproblem, Thread und manuel Netzwerkprogrammierung 4
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
K ein Thread pro Stream Netzwerkprogrammierung 2
D Weiterer Thread auf Port 843 horcht Netzwerkprogrammierung 7
D Thread problem Netzwerkprogrammierung 3
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
S Thread Transport Netzwerkprogrammierung 6
S Socket Thread in Schleife Netzwerkprogrammierung 4
G Objekte per TCP verschicken + Thread Netzwerkprogrammierung 4
Q Thread und Sockets... Netzwerkprogrammierung 2
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
PAX Outputstream von anderem Thread verwenden lassen Netzwerkprogrammierung 5
C Server mit Multithreading (Thread-Pool) Netzwerkprogrammierung 2
E java.lang.NullPointerException aber nur wenns im Thread läuf Netzwerkprogrammierung 4
F EIN Thread in RMI auf Serverseite Netzwerkprogrammierung 3
G Server Thread beenden Netzwerkprogrammierung 16
T Socket-Thread: Designfrage Netzwerkprogrammierung 14
S Mit Thread arbeitende Maschine Netzwerkprogrammierung 6
T select() ohne NIO - oder wie Worker-Thread sauber beenden? Netzwerkprogrammierung 9
K Selbe Streams mehrfach nutzen (zusätl. Thread) Netzwerkprogrammierung 6
ven000m Thread Frage Netzwerkprogrammierung 11
B Thread.start() (run()) excption Netzwerkprogrammierung 2
M Thread läuft nicht weiter Netzwerkprogrammierung 2
B NullPointerException | Thread Netzwerkprogrammierung 4
U Current thread not owner Netzwerkprogrammierung 3
S readline-thread stoppt vorzeitig Netzwerkprogrammierung 6
J RMI - (RemoteException occurred in server thread) Netzwerkprogrammierung 2
S Webserverprogrammierung: Thread-Beschränkung Netzwerkprogrammierung 2
M Exception in thread "main" java.lang.NoClassDefFou Netzwerkprogrammierung 2
F problem mit thread bzw. netzwerkverbindung! Netzwerkprogrammierung 3
L netzwerk mit thread Netzwerkprogrammierung 3
G RMI thread safe ? Netzwerkprogrammierung 11
A Thread gibt Nachrichten mehrmals aus (Messenger in Java) Netzwerkprogrammierung 3
G Alternative Rückgabe große ArrayList Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben