Zeichensatz an Master Server
-
Hi,
Danke für deine Antwort!Wie muss ich das denn nun Senden?
Weil da steht was von Binär und so, leider bin ich da drin noch nicht so fit.
Also ich weiß was Binär ist aber nicht wie ich es anwende!
Müsste ich das dann alles auf einmal senden?Danke für eure Geduld.
MFG ReduX
-
Da es sich um UDP handelt, musst du die Nachricht vermutlich als Ganzes verschicken, sonst wird dir der Server das nicht verzeihen.
Den Buffer kannst du "binär" z.B. so füllen (wenn es sich um C oder eine ähnliche Sprache handelt):buffer[0]=0x31; buffer[1]=0xFF; //und danach die beiden Strings
-
Hi,
Stimmt das so?:char masterquery1[256]; masterquery1[0] = 0x31; masterquery1[1] = 0x03; strcat(masterquery1,"0.0.0.0:0\0"); strcat(masterquery1,"\\type\\d\\secure\\1\0");Das char array schicke ich so an den server und bekomme dann eine unleserliche Zeichnekette zurück, die ich unter debian nicht lesen kann!
MFG ReduX :xmas1:
-
Nein! strcat erwartet zwei C-Strings (also 0-terminierte Daten!). Wie soll es sonst wissen, wo mit dem anfügen begonnen werden sollte?
-
Hi,
Ich kann dir nicht ganz folgen.
Die beiden strings/Zeichenketten werden am Schluss doch mit \0 terminiert.MFG ReduX
-
strcat(masterquery1,"0.0.0.0:0\0");und wo ist masterquery1 0-terminiert? Und du weißt, dass strcat nur bis zur ersten 0-Terminierung kopiert?
Was du willst ist wohl eher
memcpy(masterquery1 + 2, "0.0.0.0:0", sizeof("0.0.0.0:0"));siehe man: memcpy und man: strcat
-
Hmm aber wenn ich nun:
char masterquery1[256]; masterquery1[0] = 0x31; masterquery1[1] = 0x03; memcpy(masterquery1 + 2, "0.0.0.0:0", sizeof("0.0.0.0:0")); memcpy(masterquery1 + 11, "\\type\\d\\secure\\1", sizeof("\\type\\d\\secure\\1"));hinschicke ist die Zeichenkette auch nicht lesbar?!?
MFG ReduX
-
was heißt überhaupt "nicht lesbar"? Lass dir die empfangenen Daten einmal als Zahlen ausgeben
ssize_t n = recv(s, buffer, buffer_len, flags); if(n < 0) fehler(); else for(size_t i = 0; i < (size_t)n; ++i) cout << hex << (unsigned)buffer[i] << ' ';
-
Hi,
Wenn ich das mit Hex ausgebe bekomme ich sowas wie:ffffff87 3e 4b ffffff8d 59 ffffffea 62 ffffffd9 ffffffa3 1e ffffffd0 69 ffffff87 3e 4b ffffff8d 59 69 ffffff87 ffffffd9 ffffffa3 1e ffffffcf 69 ffffff87 3e 4b ffffff8f 2a 69 ffffffd2 3e 4b ffffff8f 43 69 ffffff87 0Nur wie kann ich das jetzt in ips und ports transverieren? Kenne mich mit Hex zeugs da nicht so aus.
MFG ReduX
-
Bzw noch:
Laut doku kommen ja bytes an und beim empfangen wird ja alles in ein char array geschrieben. Dann müsste es das Byte ja automatisch in ASCII umwandeln oder?
Wenn ich aber was ausgebe aus dem char array ist es wie beschrieben nicht lesbar bzw. es wird ein Fragezeichen angezeigt.MFG ReduX
-
Hat den keiner eine Idee?
Habe schon überall geschaut aber nichts gefunden.MFG ReduX :xmas1: