P
pansenn
Gast
Hallo zusammen.
Wir müssen für die Uni ein Chat Client programmieren. Gefordert ist:
Hier mal zwei Beispiele:
Jetzt mein Problem:
Wie sehen diese Pakete aus. Ist die ID ein String ? Oder wird nur das 01 als byte geschickt ?
Bei Length geb ich ja nur an wie viele Zeichen in der Nachricht sind. Warum brauch ich dann acht wenn Hallo doch nur fünf Buchstaben hat ?
Und bei Data wieder das Problem mit den h's. Was ist z.B 53h ? Stellt das ein Buchstabe dar ?
Sorry für meine (wahrscheinlich) komischen Fragen, aber ich steig da grad überhaupt nicht mehr durch.
Also danke schon mal im Vorraus!
Wir müssen für die Uni ein Chat Client programmieren. Gefordert ist:
Die Kommunikation mit dem Server erfolgt mit Datenpaketen, die aus einer Folge von Bytes bestehen, die in drei Felder unterteilt ist : ID (1 Byte), Length (2 Bytes) und Data (so viele Bytes, wie Length angibt).
Die Felder werden in der Reihenfolge ID, Length, Data übertragen. Das Feld ID gibt die Art des Pakets an, das Feld Length die Länge des Feldes Data und das Feld Data enthält die eigentlichen Daten, die je nach Inhalt des Feldes ID unterschiedlich zu interpretieren sind (genaue Beschreibung auf der nächsten Seite). Datentypen, die länger als ein Byte sind, werden in Big-Endian-Reihenfolge übertragen. Der Server läuft auf ***** und nimmt einfache TCP-Verbindungen auf Port 8182 an.
Hier mal zwei Beispiele:
Pakete vom Client zum Server:
ID: 01h
Length: 8
Data(Typ): {53h,6Bh,69h,4Ch,4Ch,6Fh,72h,5Ah} (byte [])
Bedeutung: "Hallo" zum Server, Server antwortet mit ID 81h
ID: 02h
Length: 2*(Anzahl Zeichen in Nickname)
Data(Typ): Nickname (char [])
Bedeutung: Anmelden mit Nickname, Server antwortet mit ID 82h
Jetzt mein Problem:
Wie sehen diese Pakete aus. Ist die ID ein String ? Oder wird nur das 01 als byte geschickt ?
Bei Length geb ich ja nur an wie viele Zeichen in der Nachricht sind. Warum brauch ich dann acht wenn Hallo doch nur fünf Buchstaben hat ?
Und bei Data wieder das Problem mit den h's. Was ist z.B 53h ? Stellt das ein Buchstabe dar ?
Sorry für meine (wahrscheinlich) komischen Fragen, aber ich steig da grad überhaupt nicht mehr durch.
Also danke schon mal im Vorraus!