Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Winsock2 send() problem mit Hex arrays

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.11.2006, 22:42 Uhr
~contebral
Gast


Hallo zusammen!

ich habe eine Frage bezüglich winsock2 und zwar. ich versuche gerade meine eigene DNS-Packete zusammenzubasteln.
so ungefähr sieht mein code aus :
unsigned char DnsPacket[]=
"451b01000001000000000000047465737406646f6d61696e03636f6d0000010001";
...
if (send(sock, &DnsPacket, len, 0) !=len)
error_exit("send() Failed!!!!");
es klappt wunderbar nur mein sniffer zeigt mit dass das DNS Packet malformed ist. und zwar weil send() sendet den Inhalt des Packets als char array und nicht als array mit hexadezimalwerten :-(

0000 00 0c 29 a1 7c 25 00 15 f2 00 0b bc 08 00 45 00 ..).|%........E.
0010 00 5f 4c c3 00 00 80 11 69 ea c0 a8 01 45 c0 a8 ._L.....i....E..
0020 01 4b 05 48 00 35 00 4b e8 51 34 35 31 62 30 31 .K.H.5.K.Q451b01
0030 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 0000010000000000
0040 30 30 30 34 37 34 36 35 37 33 37 34 30 36 36 34 0004746573740664
0050 36 66 36 64 36 31 36 39 36 65 30 33 36 33 36 66 6f6d61696e03636f
0060 36 64 30 30 30 30 30 31 30 30 30 31 00 6d0000010001.

ich weiss dass send() nur char arrays sendet, gibt es keine möglichkeit Hex arrays zu senden ohne dass den Inhalt des arrays nochmal ins Hex convertiert wird???
mach ich irgendwas falsch???
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2006, 00:14 Uhr
Blubber2063



Was willst du eigentlich ein Char Array ist nach C Standard ein Feld von 8Bit Daten. Das ist normalerweise die Art der Adressierung von aktuellem Speicher Byteweise Adressierung. Also schiebst du deine Daten Byte für Byte auf die Socket. Hexadezimal ist ja nur eine Darstellungsform für binäre Daten(bzw ein anderes Zahlensystem), aber grundsätzlich ändert sich ja nichts an den Daten, du wirst wohl eher falsche Daten übertragen. Achso und nebenbei es gibt Protokoll Funktionen unter Windows und Linux die das auflösen von DNS Adressen übernehmen.
Dieser Post wurde am 15.11.2006 um 00:15 Uhr von Blubber2063 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.11.2006, 15:48 Uhr
Blubber2063



Btw, du darfst natürlich keine Zeichen für echte Werte halten, du schreibst ja Zeichen in dein Array, da dürfen natürlich nur die Zahlen drinne stehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: