# allgemeine Frage über Server-Client-Kommunikation



## marky8264 (30. Jan 2013)

hallo,

ich bin mir nicht sicher, ob es hier her passt. Deswegen probier ich es einfach mal.

Ich habe in Prinzip eine ganz einfache Frage: Wie kann ich mir am Server anzeigen lassen, ob eine Verbindung zum Client existiert?

Also zu den Details:
- eine App greift auf eine DB zu, welche auf einem Server liegt
- die App ist in Java geschrieben und verwendet Spring und Hibernate

Natürlich habe ich mich schon Internet schlau gemacht und herausgefunden, dass ich mit netstat mir alle aktuellen Netzwerkverbindungen ansehen kann. Das Problem aber dabei ist, dass der Eintrag zum Client nach einiger Zeit aus der Liste verschwindet, obwohl die App immer noch am Client läuft. 

Könnt ihr mir vll bei diesen Problem weiterhelfen?
mfg


----------



## Bizarrus (30. Jan 2013)

Du hast einen falschen Ansatz.
Wenn du derartiges visualisieren möchtest, bleiben dir zwei Optionen:

Option A:
Die App sendet in regelmässigen Abständen ein "Hallo hier bin ich", also einfach ein Request, so dass dies wieder in den netstats erscheint, aber hier gibt es einen nachteil: die dauernden anfragen sind ned sehr effektiv

Option B:
Man beschäftigt sich mit Sockets und überlässt einen Server die verbindungen der Clienten.


----------



## deetee (30. Jan 2013)

Wie verbindest du die App/Client mit der DB? Ist da kein Webservice/Tier mehr dazwischen?


----------



## marky8264 (30. Jan 2013)

Bizarrus hat gesagt.:


> Du hast einen falschen Ansatz.



Was meinst du damit? Für mich ist es unwichtig, ob der Client weiß, dass die DB noch vorhanden ist. Denn wenn sie es nicht ist, dann bekomme ich eine Exception.

Es geht um folgende Sache. Ich möchte gerne, dass mein Server automatisch erkennt, wenn er nicht mehr benötigt wird und sich herunterfährt.

Ad Option A: ich habe so etwas ähnliches bereits probiert und zwar habe ich in regelmäßigen Abständen einen Http-Request gestellt (neben der DB läuft auch noch ein apache mit). Aber dadurch ist trotzdem der Eintrag nicht wiedergekommen.

Ad Option B: Das habe ich nicht ganz verstanden :bahnhof:. Was meinst du damit?



deetee hat gesagt.:


> Wie verbindest du die App/Client mit der DB? Ist da kein Webservice/Tier mehr dazwischen?


Es handelt sich um einen MySQL-Server. Die Verbindung erfolgt über Hibernate und dazu muss ich nur die URL eingeben.

mfg


----------



## tröööt (31. Jan 2013)

marky8264 hat gesagt.:


> Es geht um folgende Sache. Ich möchte gerne, dass mein Server automatisch erkennt, wenn er nicht mehr benötigt wird und sich herunterfährt.



gut ... und wie soll das system dann erkennen das es wieder gebraucht wird wenn es abgeschaltet ist ?

alleine das wort "server" impliziert doch schon die tatsache das ein system mit gewissen diensten dauerhaft läuft und auf anfragen wartet ... wenn man es abschaltet wenn eine gewisse zeit keine anfragen kam muss man auch einen sicherungsmechanismus einbauen der das system wieder reaktiviert wenn es durch eine neue anfrage wieder gebraucht wird ... und so lange das nicht umgesetzt wurde (wenn überhaupt machbar) ist die ganze aktion sinnlos da man so die systemverfügbarkeit verliert ...


----------



## marky8264 (31. Jan 2013)

@tröööt: Wie ich bereits sagte, habe ich schon einige Zeit investiert und mich im Internet schlau gemacht. Ich weiß was ein Server ist. Es ist sehr wohl möglich, einen abgeschalteten Computer übers Netz zu starten. Dieser Mechanismus nennt sich Wake-On-Lan (WoL). Dabei sendet der Client einfach ein Magic-Paket an den Server. 

Das funktioniert bereits teilweise. Das einzige Problem ist nur noch, wie ich den Server aus einen Subnetz starte, aber dazu habe ich auch schon einen Lösungsansatz gefunden (denn ich noch nicht getestet habe).


----------

