Seite 3 von 4

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 21:10
von mister_tt
fetzer hat geschrieben:Irgendwie nimmt das echt den Spaß ausm Projekt.
Welcher Spaß? Irgendwie ist es eh spaßbefreit, wenn man die Aufgabe ohne vorherige Erfahrungen (außer die Veranstaltungen der ersten 5 Semester Bachelor Informatik) nicht lösen kann, weil man keine Ahnung hat, was zu tun ist... :(

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 21:25
von fetzer
mister_tt hat geschrieben:
fetzer hat geschrieben:Irgendwie nimmt das echt den Spaß ausm Projekt.
Welcher Spaß? Irgendwie ist es eh spaßbefreit, wenn man die Aufgabe ohne vorherige Erfahrungen (außer die Veranstaltungen der ersten 5 Semester Bachelor Informatik) nicht lösen kann, weil man keine Ahnung hat, was zu tun ist... :(
Wo liegt denn das Problem, wenn ich fragen darf?

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 22:21
von aiQon
mister_tt hat geschrieben:
fetzer hat geschrieben:Irgendwie nimmt das echt den Spaß ausm Projekt.
Welcher Spaß? Irgendwie ist es eh spaßbefreit, wenn man die Aufgabe ohne vorherige Erfahrungen (außer die Veranstaltungen der ersten 5 Semester Bachelor Informatik) nicht lösen kann, weil man keine Ahnung hat, was zu tun ist... :(
ich finds deutlichunterhaltsamer als compiler zu bauen :D

im ernst, ging bis auf ein paar stolperfallen recht zackig

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 22:22
von aiQon
fetzer hat geschrieben:
BadTaste hat geschrieben:Hi,
also ich konnte gerade die Datei mehrfach problemlos herunterladen.
Momentan scheint alles problemlos zu laufen.
Kann ich derzeit nicht bestätigen. Es wird einfach keine Antwortverbindung aufgebaut, obwohl bereits mehrere korrekte (uns fehlt nur noch ein einziger Chunk) Pakete gesendet und empfangen wurden.
bestand die datei nicht aus nur einem chunk?

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 22:34
von fetzer
aiQon hat geschrieben:bestand die datei nicht aus nur einem chunk?
Dann müsste die Dateigröße ja kleiner sein, als die Chunkgröße ;)

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 22:42
von olg
Ich bastele derzeit immernoch am Chunk-zusammensetzen und kriege mittlerweile wieder (nach mehreren korrekten Antworten - IP hat sich auch nicht geändert) auch keine Antwort :/

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 23:51
von aiQon
fetzer hat geschrieben:
aiQon hat geschrieben:bestand die datei nicht aus nur einem chunk?
Dann müsste die Dateigröße ja kleiner sein, als die Chunkgröße ;)
sind 2 chunks :O

Re: Adventskalender Problem

Verfasst: 21. Dez 2010 23:55
von mister_tt
fetzer hat geschrieben:Wo liegt denn das Problem, wenn ich fragen darf?
Ich weiß nicht mal ansatzweise, wie man die Datei vom Server holen soll... Aber vielleicht habe ich auch einfach ein paar Folien übersehen, die was dazu aussagen, oder bin einfach zu doof, oder so... :roll:

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 03:33
von Maeher
Du sollst FS_GET Requests, wie sie in den Folien beschrieben sind, an den Server schicken, und dir aus den empfangenen Daten die Datei wieder zusammenbasteln.

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 12:47
von Christoph B
- FS_GET Anfrage an Server mit Payload = identifier der Datei (SHA1(filename) modulo 2^n)
- Server Antwortet mit einer Nachricht,
  • die im Header die selbe UUID (MSB sowie LSB) enthält, sowie einen um 1 erhöhten Counter
  • den FileDescriptor als Payload enthält
- aus dem FileDescriptor musst du nun im wesentlichen die Anzahl der Chunks bestimmen, damit du für jeden Chunk den jeweiligen Identifier mit (SHA1(filename:ChunkNr) modulo 2^n) bestimmen kannst.
Wenn du nun wie oben eine neue FS_GET Anfrage an den Server schickt, aber mit dem Chunk Identifier als Payload, antwortet der Server mit einer Nachricht
  • die im Header die selbe UUID (MSB sowie LSB) enthält, sowie einen um 1 erhöhten Counter
  • den Chunk als Payload enthält
=> Die Chunks musst du nun wie schon im Post oben erwähnt zu einer Datei zusammenbauen, d.h. die Chunks in der richtigen Reihenfolge in eine Datei schreiben, und der Datei den ggb. filename geben.

Falls du das ganze in Java implementierst:
java.net.ServerSocket,java.net.Socket, java.io.InputStream /OutputStream zum Senden & Empfangen von Nachrichten
java.io.FileOutputStream zum Datei anlegen und byte daten reinschreiben
java.nio.ByteBuffer => geniale Sache um aus den rohen Bytedaten (die du dem Server schicken musst / die du vom Server empfängst) deine ints, longs usw. zu extrahieren - und umgekehrt deine ints, longs usw. in rohe Bytedaten zu konvertieren

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 19:16
von spyro.makedonski
bei mir geht es nicht ... also ich schicke eine korrekte byte[] zu dem Server(es ist einfach zu überprüfen... das Payload ist 0,0,+ die letze 6 Bytes von dem Hash. am Anfang sind 2 Bytes 0 um 8 bytes zu bekommen(mit n=48)) aber beim read() bekomme ich -1 nach ~2 min Warten, und das InputStream.available() method liefert 0... ich habe port Forward gemacht und trotzdem bekomme ich nichts.


16 bytes random Nummer
8 byte counter (0,0,0,0,0,0,0,0)
1 byte type (12)
4 byte ip (z.b. 120.121.122.12 wuerde als {120, 121, 122, 12} byte[] representiert)
4 byte port (z.b. 0, 0, 43, 65)
4 byte payloadsize (0,0,0,8)
8 byte identifier (siehe oben)

insgesamt byte[45]

Habe ich etwas übergesehen?

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 19:26
von BadTaste
Stimmt die IP im header mit deiner externen IP überein?
Wir erhalten noch immer Nachrichten, bei denen dies nicht der Fall ist.
Wie in der Übung besprochen, antwortet der Server auf solche Anfragen nicht.

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 19:29
von spyro.makedonski
ja ...die IP in dem Header ist meine externe IP...

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 19:33
von spyro.makedonski
also meine IP ist 92.193.5.222 ... vielleicht kannst du im log schauen

Re: Adventskalender Problem

Verfasst: 22. Dez 2010 19:40
von BadTaste
dann steht in eurem header wohl 92.193.5.22