# Client Identifikation eines Servers



## new Android (26. Aug 2014)

Hallo zusammen,

Ich möchte gerne mit meiner App den eingegebenen Username des Logins an einen Server übergeben.
Die Frage die sich mir nun steht ist:

Wie kann Ich dauerhaft den eingegebenen Username auf dem Smartphone speichern - ohne immer in einer MySQL-DB zukramen? 

Wie identifiziert ein Multi(thread)server normalerweise welcher Client Daten senden oder abfragt?
Und wie findet dieser dann der entsprechenden client um die angeforderten Daten zu übermitteln?

Vielen Dank vorab.


----------



## Ch4t4r (27. Aug 2014)

Hey,

Es reicht, wenn du den Nutzernamen (+ passwort?) im internen Speicher (ohne Root nicht auslesbar) als Datei anlegst, optional kannst du diese auch noch verschlüsseln, was jedoch keine Sicherheit bietet, einem potentiellen Angreifer nur eine weitere Hürde stellt. Das "angemeldet bleiben" ist generell eine Sicherheitslücke auf der Clientseite, da jeder mit Zugriff diese Daten auslesen kann. Wie aber oben geschildert ist der Zugriff auf den Internen Speicher (/data/app/dein.package.name) nur von deiner app oder einer Person/App mit Rootzugang einsehbar. 

Nach der Anmeldung am Server behälst du dauerhaft dein Socketobjekt, welches deine Verbindung zum Client symbolisiert. Durch dauerhaftes Auslesen der "Streams" des Clients kannst du gezielt von diesem Client Daten empfangen und welche an ihn senden (InputStream und OutputStream). Um angeforderte Daten zu senden wartest du also einfach, bis der Client eine Art Nachricht sendet, dass er einen Satz Daten möchte und im selben Thread fragst du als Server diese Daten ab und schiebst sie zu dem zum Thread gehörigen Socket und somit zum Client. Ich empfehle dir, dich im Internet konkret mit Streams zu beschäftigen.

Ich hoffe, dass ich dir helfen konnte


----------

