Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: [JAVA] Client - Server Problem ( CPU Last vs. einfaches Verbindungsende )
erste ungelesene Seite | letzter Beitrag 
AdmiralMorgan

Leet
CPU Last vs. einfaches Verbindungsende
Hi ihr alle!

Ich beschäftige mich seit einiger Zeit mit Java, jedoch erst seit kurzem Intensiv genug um halbwegs Ahnung zu haben Augenzwinkern

Die allgemeinen Programmiergrundlagen etc. sind vorhanden.

Mein Problem liegt mehr im Speziellen:
Ich hab einen kleinen Chat Server geschrieben (nur so um in Threads etc. reinzukommen). Dieser ist mittlerweile ein Stückchen gewachsen und bietet nun auch erweiterte Funktionen. Unter anderem die, dass ich in der Konsole den Server mit einem einfachen Befehl beenden kann.
Soweit zur allgemeinen Beschreibung.

Wenn ich den Server jetzt so beenden will, muss ich natürlich sämtliche Threads beenden bzw. deren Verbindung zu den Clients trennen. Soweit gar kein Problem. (Es funktioniert erstaunlich besser als erwartet Augenzwinkern)

Was jetzt aber passiert:
Wenn ich im Thread in einer - unter bestimmten Vorraussetzungen terminierenden - Schleife mit
 
PHP:
if (myBufferedReader.ready())
{

}

Abfrage, ob eine Client Nachricht vorliegt oder nicht, dann wird die Verbindung ohne weiteres zu dem Zeitpunkt getrennt, wo ich den Befehl in der Konsole abgeschickt habe.
Der Nachteil: Die CPU Last schon bei nur einem Client liegt bei fast 100% (sagt zumindest der Task Manager)!

Wenn ich es weglasse, stehe ich vor einem anderen Problem:
Die Verbindung zum Client wird erst dann getrennt, wenn der Client noch eine Nachricht schickt (das gilt für jeden Client!). Eher ist kein Verbindungsende möglich (warum auch immer). Der Server beendet sich auch erst, wenn alle Clients eine Nachricht geschickt haben.

Von der Funktion her hätte ich es am liebsten so, wie es mit der Abfrage läuft, nur am liebsten ohne diese doch enorme CPU Last.
Mit einem wait() hab ich es auch schon probiert.

Bin für jede Hilfe dankbar!

mfg morgan

PS: wenn mehr Code gewünscht wird bitte Bescheid sagen!
22.10.2004 12:06:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
AdmiralMorgan

Leet
Hat keiner eine Idee?
Oder fehlt euch zur Analyse des Problems noch mehr Source?
Wär echt super, wenn mir wer helfen könnte!

mfg morgan
24.10.2004 17:40:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Netbeater

snow
zeig mal source.. schaden kanns nicht.
24.10.2004 18:42:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
AdmiralMorgan

Leet
Thx für die Antwort!

Hier die Sources:
Der Thread
Der Server selbst
Die "Konsolenkommunikation"

mfg morgan
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von AdmiralMorgan am 24.10.2004 22:07]
24.10.2004 22:07:10  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: [JAVA] Client - Server Problem ( CPU Last vs. einfaches Verbindungsende )


mods.de - Forum » Webdesign & Coding » 

Hop to:  

| tech | impressum