![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка пакетов [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]
причем тут пакеты...
посылай текстом, преамбулу оговаривай