URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 117
[ Назад ]

Исходное сообщение
"Народ а возможно ли передать структуру через сокет?"

Отправлено Alex , 16-Авг-01 15:49 
Если да, то как ?

Содержание

Сообщения в этом обсуждении
"RE: Народ а возможно ли передать структуру через сокет?"
Отправлено Арлекин , 16-Авг-01 18:30 
Если в лоб, то вряд ли. В гнездах const char*, в тлях char*. Попробуй полазить по исходникам RPC-х функций xdr-преобразований. Они как-то это делают.

"RE: Народ а возможно ли передать структуру через сокет?"
Отправлено Vinny , 16-Авг-01 19:52 
Ессесно можно. Но только нельзя забывать о том, что существуют архитектуры с big-endian и little-endian(к ним относится и i386) с различным порядком размещения байтов в структурах. Для одинаковых byte-ордеров проблемы нет, для разных - нужно договориться о порядке следования байтов в передаваемой информации.



"RE: Народ а возможно ли передать структуру через сокет?"
Отправлено Vit , 31-Авг-01 12:08 
К тому же у нас препод в свое время хвастался, что он работал на каких-то военных машинах где тип char занимал 4 байта.

Если (и скорее всего) ты передаешь структуры на одинаковые платформы, то ты тупо бурушь ее размер и указатель на нее и шлешь в сокет.

struct packet data;
write((void*)packet, sizeof(packet), socket);
НО это только на одинаковых платформах! Создай 2 протокола один такой-простой другой через XDR