Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Прием разных пакетов на Один порт


Автор: GooD 21.10.2004, 23:07
Привет всем!
В своей программе я использую TidUDPServer и TidUDPClient Клиет посылает какую небуть структуру Серверу он её принемает. Есле я хочу отправить на это же сервер друдую структуру то как мне узнать какая это именна структура?
Тоесть:

Код
procedure TForm1.UDPServer.UDPRead(...);
var
S1: TStyctyra1;
S2: TStyctyra2;

begin
if {Сдесь мне надо узнать какая имменно струтура пришла. Есле первая то} then
AData.ReadBuffer(S1,SizeOf(s1))
else{Есле вторая то}
AData.ReadBuffer(S2,SizeOf(s2));
end;


Как это можно сделать?
Заранее спасибо за ответ!

Автор: <Spawn> 22.10.2004, 05:28
Продумай заголовок пакета, в котором идентифицируй свои структуры.

Автор: Гость_Гость 22.10.2004, 06:06
Блин, а по подробнее можно

Автор: p0s0l 22.10.2004, 09:44
Перед отправкой структуры отправляй всегда какой-нибудь ID структуры.
К примеру, так:
Код
var
S1: TStyctyra1;
S2: TStyctyra2;
S3: TStyctyra3;
ID : DWORD;

begin
 AData.ReadBuffer(ID, SizeOf(ID));
 case ID of
   1 : AData.ReadBuffer(S1,SizeOf(s1));
   2 : AData.ReadBuffer(S2,SizeOf(s2));
   3 : AData.ReadBuffer(S3,SizeOf(s3));
 end;
end;


Клиент перед посылкой структуры TStyctyra1 посылает DWORD(1),
перед посылкой TStyctyra2 посылает DWORD(2) и т.д....

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