Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отправка пакетов [D5, Win95/98, WinXP]


Son!K ©   (2003-08-29 16:39:00) 

Добрый день уважаемые.

У меня пишеться прога которая работает через сокеты с клиентом и надо посылать разные записи (запросы о состояни, сообщения и т.д.) все они имеют разную структуру и размер. Можно ли посылать данные о том какую запись надо принять в одном пакете с этой записью?

Или вообще как лучше сделать в такой ситуации?

Зарание благодарен.


Polevi   (2003-08-29 18:34:00) [1]

попробую еще разок..
описывай свои объекты-запросы, объекты-ответы как классы наследники TComponent, поля опиши как proprty в published секции
TComponent умеет записывать published свойства в поток и создавать свой экземпляр из потока

req:=TRequest.Create; //создали объект-запрос
ms:=TMemoryStream.Create; //создали поток
ms.WriteComponent(req); //записали published свойства в поток

прикрепили к потоку заголовок=ms.Size

отправили поток - socket.SendStream к примеру

получили заголовок, приняли данные размером указаным в заголовке
поместили данные в MemoryStream

req:=ms.ReadComponent(nil); //создали объект из потока

все. имеем на сервере точную копию объекта-запроса, посланного клиентом


Vlad Oshin   (2003-08-29 17:40:00) [2]

причем тут пакеты...
посылай текстом, преамбулу оговаривай


Наверх

Титульная страница Поиск, карта сайта Написать письмо