struct packet { unsigned short pack_id; unsigned short pack_size; unsigned char* payload; unsigned char md5sum[16]; // might be handy to have space for '\0' };