![]() |
|
|
![]()
|
|
| NightXXX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Подскажите пожайлуста как можно передать данные от сервера клиенту, обратно я сделал, сервак не хочет отправлять какими функциями отправлять данными!!!
Буду благодарен за помощь, или хотя бы за какую нибудь подсказку. |
|||
|
||||
| NightXXX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Тут что никто не пользуется TCP/IP Socket
Socket->SendBuf(void *,int) Вот функция для передаци данных буферизованных Подскажите как передать весь класс,т.е. его данные? Чего то мне в голову ничего не приходит! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 1 Всего: 484 |
Что делает?
Очень сильно зависит от того, какой класс и кто его родитель... Чтобы передать класс, нужно сначала его сериализовать в стрим, а потом передать этот стрим. На другой стороне десериализовать. Сериализуются только published проперти. У TComponent есть для этого методs SaveToStream и LoadFromStream. |
|||
|
||||
| NightXXX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Допускаем что у класса нет родителей.
Вот пример : class TStudent { private: public: unsigned int ID; AnsiString name; AnsiString file; AnsiString num; }; как вы говорите это записать в стрим и что это такое в двух словах? Не могли бы вы пример показать как это сработает на передачу и на прием? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 1 Всего: 484 |
Так не бывает, чтоб родителей совсем не было...
Если родитель не указан, значит это TClass. Данный пример автоматом не сериализуется, т.к. не имеет RTTI информации. Для сериализации автоматом, родителем должен быть минимум TPersistent. Но с ним придёться ещё побороться. Если родитель TComponent, то у него уже есть всё необходимое. В любом случае, для автоматической сериализации требуется RTTI информация. Поэтому все поля должны быть published. Но можно и без этого обойтись - записать все поля вручную - последовательно каждое поле. Для этого потребуется TMemoryStream и TWriter. Для чтения соответственно TMemoryStream и TReader. Примеры и описание есть в любой толковой книжке. Также можно попробовать поиск и справку. Ну а с передачей стрима, надеюсь, проблем не возникнет... Пример накидать мне слабо - не силён в плюсах |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
| NightXXX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Спасибо ща просмотрим что да как!
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 1 Всего: 484 |
||||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Поясните, пожалуйста, мне что-то не понятно: 1. Чем объекты отличаются от классов согласно вашему высказыванию 2. Что это за класс TClass и какие у него есть члены 3. Если я объявляю в своей программе собственный класс без всяких родителей, то значит по-умолчанию я его наследую от родителя TClass? И значит я могу пользоваться какими-то его полями/методами/свойствами и т.п.? А какими? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 1 Всего: 484 |
Anikmar, если работодатель узнает, что ты не знаешь таких вещей...
1. Класс - описатель объектов. Объект - инстанс класса. То есть непосредстверро экземпляр класса. Например TButton - класс. А Button1, Button2 и т.д. - это объекты-экземпляры класса TButton. 2. TClass - класс для TObject. По сути TClass = class of object; Всё, что он умеет - описано у TObject, а он просто представляет собой его класс. 3. Да. Какими? Смотри справку или просто попробуй autocomplite. Создай экземпляр пустого класса и попробуй вызвать любой его метод - автокомплит подскажешь, что ты можешь вызвать... Добавлено через 44 секунды Лекцию читал Snowy. |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 4 Всего: 8 |
Snowy, это не дельфи, расслабься)
Челу тупо нужно создать структуру и передать её. struct Data { unsigned int ID; char name[50]; char file[50]; char num[50]; }; Data data; Socket->SendBuf(&data,sizeof(data)) ; |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Snowy, может в дельфи это и так, но с Си++ никаких родителей по умолчанию нет. По крайней мере я их не обнаружил.
Лекцию слушал Anikmar |
|||
|
||||
| NightXXX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Вот таким образом у меня структура не передается, приходит только один параметр а остальные куда то теряются!((( не могу понять почему!( |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 4 Всего: 8 |
NightXXX,
Все верно. Данные сразу все не приходят. И не передавай AnsiString....! Это сообщение отредактировал(а) HappyLife - 24.5.2007, 15:12 |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |