silently (26.03.2018)
Thema: ModulPaket lesen
-
26.03.2018, 08:36 #1
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 PostsModulPaket lesen
Ich verzweifel gerade am Modul Paket lesen.
Folgendes Paket habe ich
Code:%3A%00%04l%01-%0Eich%20bin%20ich%2031%21%01%00%8B%C3J%FF%FE%0B%0Fpics/female.png%0E%0B%16pics/kn-smartphone.png%0D%0C%00%00%FF%00%0C
%04l bezeichnet dann, was für ein modul ich bekomme? Ich bekomme da ADD_CHANNEL_MEMBER (treeindex: 1112) - macht auch sinn Soweit
lese ich dann weiter bekomme ich als type 1 - was readBoolean ist - das bedeutet das - würde zum true werden (ich denke hier irgendwo ist schon mein fehler)
lese ich nämlich weiter bekomme ich 0x0E was aber schon die länge des Nicks wäre... da hier anscheinend meine logik falsch ist bräuchte ich mal ein Denkanstoß was falsch ist
-
26.03.2018, 10:14 #2
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 PostsAW: ModulPaket lesen
Ok mit ein bisschen nachdenken bin ich glaube ich weiter.
Ich versuche jedes Paket gleich zu lesen, scheinbar muss ich aber je nach Paket fix lesen wie Channel, Nick etc
Mein Bool wird also ein String sein mit der Länge von 1 und den Channel definieren. Da ich nur in einem Channel bin ein - als Channel.
-
26.03.2018, 10:59 #3
- Registriert seit
- 09.11.2011
- Beiträge
- 121
Thanked 129 Times in 46 PostsAW: ModulPaket lesen
Die ersten zwei Bytes (ohne :\0) repräsentieren die ID als Short. Man erhält also die ID 1132. Dies rechnet man noch -20 (ID - StartIndex im Tree angegeben) und man kriegt den TreeIndex 1112, wie von dir korrekt angegeben.
Im Tree sind auch die jeweiligen Strukturen vorgegeben.
Beim Lesen benötigt man die Struktur von ADD_CHANNEL_MEMBER. Die Struktur sieht wiefolgt aus: [28, 1128, 836, 1130, 11, 1131, 12]
28 -> CHANNEL_NAME (TreeIndex: 28-20 = 8 usw.) -> Struktur von CHANNEL_NAME: 13 (heißt: String)
1128 -> CHANNEL_MEMBER
--> Struktur von CHANNEL_MEMBER: [466, 207, 182, 1133, 40, 1134, 11, 1135, 12, 673, 672] (heißt: Module)
-----> 466 -> NAME -> Struktur von NAME: 13 (heißt: String)
usw. usw.
836 -> FROM_CHANNEL -> 28 (heißt: Module und wie wir wissen ist 28 CHANNEL_NAME und die Struktur von CHANNEL_NAME ist String)
1130 -> SHOW_LOGIN_MESSAGE -> STRUKTUR: 1 (heißt Boolean)
11 -> null (11: ArrayList)
1131 -> PREFIX_ICON (ArrayList of Modules, siehe die 11 zuvor)
12 -> null (End of ArrayList)
Tree-unabhängige Strukturen:
0 -> Byte (für Enums)
1-> Boolean
2 -> Byte
3 -> Short
4 -> Integer
5 -> Long
6 -> Float
7 -> Double
8 -> Character
9 -> String (UTF)
10 -> Noch nicht implementiert: BinaryTree
11 -> ArrayList
12 -> Unerwartetes ArrayEnde
13 -> String
int len = in.readUnsignedByte();
if (len == 255) {
return null;
}
if (len >= 128) {
len = (len - 128 << 16 | in.readUnsignedByte() << 8 | in.readUnsignedByte());
}
final StringBuilder str = new StringBuilder(len + 2);
for (int i2 = 0; i2 < len; ++i2) {
str.append(in.readChar());
}
return str.toString();
Guck dir das alles im Applet (base.module.BaseProtocol usw. bei main.jar [Standalone-Client]) von Knuddels mal an.
Bei dir ist die "1", die du fälschlicherweise als readBoolean bezeichnest, die Länge des Strings für CHANNEL_NAME.Geändert von Brainy (03.05.2018 um 00:30 Uhr)
-
The Following User Says Thank You to Brainy For This Useful Post:
-
26.03.2018, 11:38 #4
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 PostsAW: ModulPaket lesen
Ok alles klar, kriege ich nun gerechnet....
Ich bekomme für die Structure für 1112 folgendes: ["28", "1128", "836", "1130", "11", "1131", "12"]
Sind also identisch
Was jetzt für mich die frage ist, am Ende des Trees geht es mit :RIGHT etc weiter, was passiert mit diesem Teil des Codes? das ist mir noch nicht ganz klar. Sind das auch Modulbezeichner, werden die einfach hinten dran gehängt?Geändert von silently (26.03.2018 um 12:57 Uhr)
-
26.03.2018, 17:24 #5
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 PostsAW: ModulPaket lesen
Geändert von silently (26.03.2018 um 17:25 Uhr)
-
The Following User Says Thank You to silently For This Useful Post:
Negok (26.03.2018)
Ähnliche Themen
-
C# Registry lesen
Von Gast78236 im Forum AndereAntworten: 1Letzter Beitrag: 13.07.2014, 19:31 -
VB.Net TCP Paket bilden - Paketzeichnung lesen
Von !lkay im Forum .NetAntworten: 5Letzter Beitrag: 31.01.2012, 11:56 -
Paketlänge lesen/schreiben
Von Flav im Forum SourcecodeAntworten: 0Letzter Beitrag: 29.07.2011, 17:05
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.