представление 6-байтового MACID - PullRequest
0 голосов
/ 27 апреля 2011

Я работаю с клиент-серверным приложением, в котором мне нужно отправить 6-байтовый идентификатор Mac (FFF000 - FFF1FF) на сервер с клиента. Я хотел знать, как лучше всего представлять в c ++.

Я думал о том, чтобы объявить его как unsigned long, а затем скрыть его в 6 байтов и отправить на сервер.

Это правильно, сделай это. Любая другая альтернатива, пожалуйста, предложите.

1 Ответ

1 голос
/ 27 апреля 2011

Не думаю, что я бы использовал для этого целочисленный тип, поскольку мы никогда не будем рассматривать значение как число.Я бы представлял это как последовательность из 6 байтов.Некоторые возможности:

unsigned char macid[6];
typedef unsigned char macid[6];
struct macid {
    unsigned char data[6];
};

Но, в конце концов, я бы выбрал:

std::tr1::array<unsigned char, 6> macid;
send(serverFd, &macid[0], macid.size());
...