Не думаю, что я бы использовал для этого целочисленный тип, поскольку мы никогда не будем рассматривать значение как число.Я бы представлял это как последовательность из 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());