Вниз
Скачать: CL | DM;

Передача Класса, Записи по сети???   Найти похожие ветки 

← →
hogus   (2002-07-13 14:41) [0]

Возможно ли в Делфе передача классов или записей по срадствам WinAPI или стандартными Делфевыми сокетами?????


← →
Anatoly Podgoretsky ©   (2002-07-13 15:03) [1]

Еще бы понять, что ты под этим подразумеваешь, я про классы, с записями понятно, непрерывный блок байт, соответственно и стандартные методы передачи


← →
hogus   (2002-07-13 15:08) [2]



Ладно сорри, не правильно поставил вопрос... КАК ЭТО Сделать???

Stream"ом что ли????


← →
Digitman ©   (2002-07-15 11:53) [3]

Да, поток наиболее подходит для этой задачи.

Но здесь следует говорить не о приеме/передаче классов, а о приеме/передаче объектов - экземпляров классов.

Задача трансляции некоего объекта по некоему каналу передачи данных сводится к передаче его (объекта) свойств. Свойства же имеют конкретные типы.
Т.о., при передаче объекта следует последовательно (в заранее определенном порядке) записать в транспортный поток данных, передаваемый приемнику:

- идентификатор класса объекта,
- количество передаваемых свойств,
- имена свойств,
- иденентификаторы типов свойств,
- значения св-в

Все это определяет некую "уникальность" данного объекта (иными словами - его описание) и позволяет принимающей стороне воссоздать копию объекта по переданному его описанию.

Принимающая сторона должна, разумеется, "знать" формат передаваемой последовательности, описывающей объект.

- получив идентификатор класса, приемник создает в своем АП соответствующий экземпляр - "шаблон"

- получив следом идущий список описателей свойств, приемник в соответствии с ним назначает соответствующие св-ва "шаблону"

Абстрактный класс TStream имеет некоторые встроенные автоматизированные средства для поточного чтения/записи объектов класса TComponent. Поточные методы WriteComponent/ReadComponent реализуют автом.запись/чтение published-свойств передаваемых/воссоздаваемых TComponent-объектов. Вспомогательные классы TFiler, TReader/TWriter позволяют указать дополнительные св-ва (кроме published), предназначенные к поточной трансляции в произвольно задаваемой последовательности.

Теперь - трансп.уровень.

Задача передающего гнезда - получив в кач-ве параметра поток, описывающий один или более объектов, передать его целиком просто как блок неких данных известного размера

Задача принимающего гнезда - приняв некий поток данных некоего размера, "превратить" его в Stream и передать на вход алгоритма интерпредации принятого потока, который, собственно, и воссоздает один или более объектов по инф-ции, последовательно считываемой из этого потока.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
14-61316
MBo
2002-08-22 15:20
2002.09.19
Что-то давно штатный психиатр не появлялся.


6-61244
Shur_ap
2002-07-15 20:53
2002.09.19
Разрыв соединения


6-61235
Wild Wizard
2002-07-17 10:52
2002.09.19
Сокеты


3-61022
Denis_P
2002-08-28 15:54
2002.09.19
DBLookupComboBox, KeyValue, два ключевых поля... Что делать?


1-61122
@-leksey
2002-09-04 09:49
2002.09.19
Копирую TMetafile в буфер, а потом вставляю в CorelDraw. Проблемы




   Наверх