Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Передача класса


Автор: Dray 18.7.2005, 18:40
Подскажите оптимальный и наиболее правильный способ передачи класса через MFC'шные сокеты. Куда не посмотрю везде приводится пример с текстом или массивом каких либо стандартных типов. smile с классами.

Автор: Coocky 18.7.2005, 21:55
А ты посмотри внимательней!
Что передается( какой параметр) в функцию?
Провильно, void*, т.е указатель на что угодно, может передать &MyClass sizeof(Myclass)
Последний параметр-размер класса

Автор: Step 19.7.2005, 03:13
Dray, через сокет... ХМ...
мягко говоря забудь...
можно придумать решение для конкретного класса, но в общем можешь об этом забыть

что посоветовать? а что за класы хочешь передавать

Автор: Coocky 19.7.2005, 10:12
Step
Ну здрасте, сокеты работаю с данными, как С++ с файлами, можно все, что угодно прочитать(получить), и записать(оправить..)

Автор: TarasCo 19.7.2005, 11:10
Насколько я помню, в MFC есть понятие сериализации - CObject::Serialize. Реализуйте потомок от CArchive, который будет осуществлять сераилизацию через сокеты.

Автор: Step 19.7.2005, 11:26
Coocky, класс это не только данные smile

Автор: Coocky 19.7.2005, 14:10
Step
Все понятно, просто на другом конце можно (нужно знать стуктуру) принять класс и все данные его..

Автор: Step 19.7.2005, 15:55
дком позволяет передавать объекты... если я не ошибаюсь

Автор: Coocky 19.7.2005, 17:39
Step
Цитата
дком позволяет передавать объекты... если я не ошибаюсь

Нет,DCOM-- это реализация COM на сетевом уровне!
Т.е это немного не то...
DCOM позволяет использовать COM через сеть...
А через сокеты можно передавть все, что угодно, главное надругой стороне знать, как это обрабатывать..
Ты ведь можешь закачать через сеть картинку?
Думаю да smile
Поэтому передавать и посылать можно все, что угодно!

Автор: Step 19.7.2005, 18:04
Coocky, все сразил, можно, конечно все можно..... вопрос только в том, а нужноли

если на другой стороне все известно, нафига туда все передавать

Автор: Dray 20.7.2005, 18:39
В целом понятно. А как будет это выглядить если в классе находится элемент типа CString он каждый раз переменной длины. Размер передаваемого объекта класса, в этом случае, будет постоянным, или нет? Если он будет переменным, то могут возникнуть проблемы при приеме. Как быть? smile

Автор: Coocky 20.7.2005, 21:56
Посмотри еще раз методы CSocket.
Я лично не сталкивался.. тесно, сейчас на вскидку не скажу...

Автор: S.A.P. 23.7.2005, 23:29
Dray а что тебе мешает запаковать свой класс в какую - нибудь переносимую структуру? А что если у тебя в классе указатели, как быть? ИМХО ручками все делать надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)