Re[7]: Как переслать структуру с помощью сокетов
От: MaximE Великобритания  
Дата: 06.04.05 15:38
Оценка:
LeXa-XL wrote:

> т.е. фактически ты предлагаешь побайтно записать данные структуры struct data в отсылаемый через сокет буфер char*buf?


Я предлагаю использовать какой-либо формат.

Есле тебе нужен бинарный, то можно взять XDR. XDR позаботится за тебя о правильном размере и порядке байтов фундаментальный типов. Для твоей структуры ф-ция сериализации будет выглядеть так:

bool_t xdr_data(XDR* x, data* d)
{
     char* p;
     xdr_u_long(x, &d->id);
     xdr_u_long(x, &d->size);
     xdr_u_long(x, &d->type);
     p = d->name;
     xdr_string(x, &p, sizeof(d->name));
     p = d->addr;
     xdr_string(x, &p, sizeof(d->addr));
     xdr_u_long(x, &d->p);
     return 1;
}


Объект XDR ты можешь взять готовый из библиотеки или создать собственный, который будет писать куда тебе нужно.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.