Hallo Zusammen!
Ich habe ein funktionierende Socket Anwendung geschrieben (d.h. eigentlich zwei: Server, Client). Über eine einfache GUI wählt der Client die Datei aus und schickt sie ab. Der Server empfängt diese und speichert Sie am entsprechenden Ort ab. Die Einstellungen (also Host, Speicherort, Password für Server, etc) sind in einer einfachen ConfigFile.
Meine Frage ist nun, ob es das einen gewissen Standart gibt (oder einfach Wege die man sicher nicht braucht), um so eine Socketanwendung zu schreiben.
Ich habe folgende Methode gebraucht:
1. Der Client öffnet eine Socket Verbindung. InputStream, OutputStream werden erstellt. InputStream an ein Thread gegeben, das alle Daten einliest und diese in eine PipedOutputStream schreibt und von einer PipedInputStream gelesen werden kann. Dafür gibt es eine Methode GetLine, damit man gleich eine ganze Zeile einlesen kann (Wäre hier ein BufferedReader von Vorteil?).
2. Jetzt folgt die Begrüssung (also HELLO, HELLO). Dann fragt der Server nach dem FILENAME und der Client sendet diesen brav. Der Server ist dabei so eingestellt (bzw. eine Funktion), dass er nach 100 Zeichen aufhört zu lesen, um einen Überlauf zu vermeiden. (deshalb kein BufferedReader).
3. Erst jetzt fragt der Server nach dem Passwort. (komisch, ich weiss).
4. Nach erfolgreichen Authentication sendet der Server "START" was den Client auffordert, die Datei zu senden. Gleichzeitig wird Sie dann vom Server mit einem FileOutputStream die entsprechende Datei geschrieben (bzw. erstellt). Nach Abschluss der Übertragung sagen sich die beiden noch freundlich "BYE".
5. Jetzt wird die Verbindung beendet.
Ich hätte auch den Code posten können, aber das wäre peinlich und leider wegen eines internen Reglementes auch verboten.
Was hab ich da alles "falsch" gemacht? Was kann man verbessern? (also hauptsächlich zum Protokoll, Ablauf, Programmierung sekundär)
Ich habe ein funktionierende Socket Anwendung geschrieben (d.h. eigentlich zwei: Server, Client). Über eine einfache GUI wählt der Client die Datei aus und schickt sie ab. Der Server empfängt diese und speichert Sie am entsprechenden Ort ab. Die Einstellungen (also Host, Speicherort, Password für Server, etc) sind in einer einfachen ConfigFile.
Meine Frage ist nun, ob es das einen gewissen Standart gibt (oder einfach Wege die man sicher nicht braucht), um so eine Socketanwendung zu schreiben.
Ich habe folgende Methode gebraucht:
1. Der Client öffnet eine Socket Verbindung. InputStream, OutputStream werden erstellt. InputStream an ein Thread gegeben, das alle Daten einliest und diese in eine PipedOutputStream schreibt und von einer PipedInputStream gelesen werden kann. Dafür gibt es eine Methode GetLine, damit man gleich eine ganze Zeile einlesen kann (Wäre hier ein BufferedReader von Vorteil?).
2. Jetzt folgt die Begrüssung (also HELLO, HELLO). Dann fragt der Server nach dem FILENAME und der Client sendet diesen brav. Der Server ist dabei so eingestellt (bzw. eine Funktion), dass er nach 100 Zeichen aufhört zu lesen, um einen Überlauf zu vermeiden. (deshalb kein BufferedReader).
3. Erst jetzt fragt der Server nach dem Passwort. (komisch, ich weiss).
4. Nach erfolgreichen Authentication sendet der Server "START" was den Client auffordert, die Datei zu senden. Gleichzeitig wird Sie dann vom Server mit einem FileOutputStream die entsprechende Datei geschrieben (bzw. erstellt). Nach Abschluss der Übertragung sagen sich die beiden noch freundlich "BYE".
5. Jetzt wird die Verbindung beendet.
Ich hätte auch den Code posten können, aber das wäre peinlich und leider wegen eines internen Reglementes auch verboten.
Was hab ich da alles "falsch" gemacht? Was kann man verbessern? (also hauptsächlich zum Protokoll, Ablauf, Programmierung sekundär)
Zuletzt bearbeitet: