teile eines arrays kopieren
-
ich habe ein array unsigned char buffer[len] in dem ein IP/TCP Paket inkl. Daten ist. Es gibt ja die structs:
struct iphdr
struct tcphdrder Ip Header in meine Buffer reicht von buffer[0] bis buffer[ip_header_lenght-1],
der TCP-Header von buffer[ip_header_lenght] bis buffer[ip_header_lenght+tcp_header-length]um es einfacher zu machen:
IP: buffer[0]-buffer[19]
TCP: buffer[20]-buffer[39]wie kann ich nun die ersten 20 byte in den struct iphdr und die 2. 20 byte in tcphdr kopieren?
-
btw. hast du length falsch geschrieben
-
ja aber wie genau benutze ich dabei den struct tcphdr?
meist wird es so verwendet:
struct iphdr* ip = (struct iphdr*) buffer; struct tcphdr *tcp = (struct tcphdr*) buffer + sizeof(struct iphdr);
und dann
memcpy(tcp, buffer+20, 40);
wenn ich mir dann tcp->source ausgebe steht was falsches drin!?
-
ok hat sich erledigt