Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Socket'ы - передача структуры

17K
26 ноября 2006 года
freddy_kruger
7 / / 09.07.2006
Здравствуйте друзья.
Кто может подсказать, как реализовать передачу\приём структур через сокеты, функциями sendto/recvfrom
Надо написать програмку по лабораторной работе, тема: терминальный доступ, реализация на протоколе UDP.
Я препода чуть не задушил за такое задание на протоколе UDP но менять он отказался.

У меня идея каждому клиенты выдавать свой ID для того чтобы обнаруживать было ли раньше получено как-либо от него сообщение или нет. этот ID вставлять каждый раз в строку и парсить её каждый раз не очень хочется. хотелось бы реализовать допустим такую структуру:
Цитата:
struct inf_send{
int ID;
char buf[100];}


к примеру. Но незнаю как передавать такую структурку через сокетs/ в функциях recvfrom и sendto можно передавать только char* buf.

у кого какие идеи!?

240
26 ноября 2006 года
aks
2.5K / / 14.07.2006
Ну так и передавай так. Определи, для каждой такой структуры функции (методы, если пишешь на C++), которые будут писать и читать все поля структуры. Ну и по хорошему если пишешь на C++ похорошему отнаследовать бы их от общего класса/интерфеса пакета, а котором определены виртуальные методы чтения записи, а заодно чтение ID конретного пакета.
17K
26 ноября 2006 года
freddy_kruger
7 / / 09.07.2006
както сложно. лучше парсить строки)
63
26 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
Цитата: freddy_kruger
както сложно. лучше парсить строки)


Для самого простейшего случая, может и сложно. Но стоит твоему горячо любимому преподу усложнить задание, и наследование проявит свою силу:) А так как ты хочешь - парсить, тебе при усложнение поставленных задач будет надо очень много кодить, и, скорее всего, многое переписывать с нуля.

398
28 ноября 2006 года
Alexandoros
630 / / 21.10.2005
Код:
#pragma pack(1)
struct s1
{
   int id;
   char buf[200]
}

union un1
{
   s1 sss;
   char buf[sizeof(sss)];
}
#pragma pack()


Типа того.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог