• Лови промокод з яким знижка 50 грн - promo50grn

Сокеты

Статус: Offline
Реєстрація: 28.01.2009
Повідом.: 176
Сокеты

Как переслать 2 числа по сети, помещенных в структуру функцией Send(...), если эта функция принимает только указатель на чар?
Ибо вариант преобразования каждого числа в строку и 2 раза отправлять по сети меня не очень привлекает))
 
Останнє редагування:
Send? о каком языке речь?
 
Как переслать 2 числа по сети, помещенных в структуру функцией Send(...), если эта функция принимает только указатель на чар?
Ибо вариант преобразования каждого числа в строку и 2 раза отправлять по сети меня не очень привлекает))
То, что там char* не значит, что это должна быть строка. Это просто байтовый буфер (а размер char как раз 1 байт).
Код:
struct MySuperStruct
{
	int i1;
	float f1;
	int i2;
};

...

MySuperStruct myStruct;
myStruct.i1 = 123;
myStruct.f1 = 123.0;
myStruct.i2 = 789;
int res = send(someSock, (const char*)&myStruct, sizeof(myStruct), 0);
//или так
//int res = send(someSock, (const char*)&myStruct, sizeof(MySuperStruct), 0);

Если формат данных не строго определён или может быть переменной длинны, имеет смысл передавать полный размер и/или тип передаваемого пакета как часть потока данных, чтобы это можно было потом нормально прочитать.
 
balkauser, всё работает! Спасибо!
 
Назад
Зверху Знизу