#pragma pack(1)
struct s1
{
int id;
char buf[200]
}
union un1
{
s1 sss;
char buf[sizeof(sss)];
}
#pragma pack()
Socket'ы - передача структуры
Кто может подсказать, как реализовать передачу\приём структур через сокеты, функциями sendto/recvfrom
Надо написать програмку по лабораторной работе, тема: терминальный доступ, реализация на протоколе UDP.
Я препода чуть не задушил за такое задание на протоколе UDP но менять он отказался.
У меня идея каждому клиенты выдавать свой ID для того чтобы обнаруживать было ли раньше получено как-либо от него сообщение или нет. этот ID вставлять каждый раз в строку и парсить её каждый раз не очень хочется. хотелось бы реализовать допустим такую структуру:
Цитата:
struct inf_send{
int ID;
char buf[100];}
int ID;
char buf[100];}
к примеру. Но незнаю как передавать такую структурку через сокетs/ в функциях recvfrom и sendto можно передавать только char* buf.
у кого какие идеи!?
Ну так и передавай так. Определи, для каждой такой структуры функции (методы, если пишешь на C++), которые будут писать и читать все поля структуры. Ну и по хорошему если пишешь на C++ похорошему отнаследовать бы их от общего класса/интерфеса пакета, а котором определены виртуальные методы чтения записи, а заодно чтение ID конретного пакета.
както сложно. лучше парсить строки)
Цитата: freddy_kruger
както сложно. лучше парсить строки)
Для самого простейшего случая, может и сложно. Но стоит твоему горячо любимому преподу усложнить задание, и наследование проявит свою силу:) А так как ты хочешь - парсить, тебе при усложнение поставленных задач будет надо очень много кодить, и, скорее всего, многое переписывать с нуля.