Как я могу представить пакет (двоичный поток) в переменной (C ++) - PullRequest
0 голосов
/ 29 января 2010

привет, я работаю над личным проектом для парсера транспорта.

Я хочу иметь возможность представлять полученный пакет в двоичном числе и впоследствии иметь возможность устанавливать конкретные биты У меня есть довольно хорошая идея, как сделать вторую часть, но я действительно застрял в начале Я получил совет использовать unsigned char для этого, но могу ли я действительно представить полный пакет в этой переменной.

спасибо

Ответы [ 2 ]

1 голос
/ 29 января 2010

и unsigned char array - это, вероятно, то, что вам нужно: вы можете хранить в этой структуре все, что захотите, и получать к ней доступ любым удобным для вас способом.

Вы также можете иметь этот контейнер в большем контейнере: больший контейнер будет иметь указатели на начало и конец каждого слоя и т. Д.

0 голосов
/ 29 января 2010

Вероятно, у меня был бы простой класс (в любом случае, простой для начала):

class Packet
{
public:
 Packet(unsigned int length);
 Packet(void *data);
 bool getBit(unsigned int bit);
 void setBit(unsigned int bit,bool set);
private:
 std::vector<unsigned char> bytes;
};

Это только начало, без сомнения, все будет сложнее в зависимости от того, для чего вы его используете. Вы могли бы подумать о перегрузке оператора массива, но это, вероятно, за пределами «начального уровня» и, возможно, лучше всего игнорировать его прямо сейчас.

...