У меня есть следующая структура:
struct fetch_info_t {
u_int8_t grocery_type;
u_int8_t arg[1024];
} __attribute__((packed));
Я хотел бы отправить это через сокет на сервер, чтобы запросить данные. Я бы очень хотел избежать любых библиотек, таких как protobuf
. grocery_type
может быть любым значением от 1 до 255. Некоторые типы продуктов, например, тип 128
, должны предоставлять дополнительную информацию. Недостаточно указать тип 128
, я также хотел бы указать Cheeses
в виде строки. С учетом вышесказанного, тип 129
должен предоставить число u_int32_t
, а не строку, в отличие от 128
.
В основном я выделил 1024 байта для дополнительной информации, которая может потребоваться системе. Вопрос в том, как отправить его через сокет, или, более конкретно, заполнить arg
нужной информацией, не зависящей от системы ? Я знаю, что htonl
на число можно использовать, но как мне на самом деле установить значение буфера для этого?
Я бы предположил, что отправка информации в конечном итоге приведет к приведению указателя структуры к массиву без знака и пошли это так через сокет. Дайте мне знать, если есть лучший способ.