![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
O пересылке данных с TIdTCPServer [D7, WinXP]
DanilinS © (2006-07-25 15:15:00)Необходимо дергать данные с сервера. Данные структурированы но их обьем заренее не известен.
Не могу понять, почему не работает следующий код:
Сервер:
код:
procedure TForm1.CommandServerException(AThread: TIdPeerThread;
AException: Exception);
var
TempStrings: TStrings;
I:Byte;
begin
AThread.Connection.ReadBuffer(CommandS, SizeOf(CommandS));
case CommandS.Command of
01: begin // старт динамического импорта
...
end;
02: begin // Стоп динамического импорта
...
end;
03: begin // Запрос перечня данных
if PathBase = '' then Exit;
if PathBase[Length( PathBase )] <> '\' then
PathBase := PathBase + '\';
FillSymbols(PathBase); // загнали данные в массив
TempStrings:=TStringList.Create;
For i:=0 to Length (ArrayMasterRec) do
TempStrings.Add(ArrayMasterRec[i].Name);
Label3.Caption:= ArrayMasterRec[0].Name;
AThread.Connection.WriteStrings(TempStrings); // кинули данные
TempStrings.Free;
end;
04: begin // Запрос исторических данных
...
end;
end;
end;
клиент:
код:
procedure TForm1.Button3Click(Sender: TObject);
var
TempList: Tstrings;
Int: integer;
S: string;
begin
TempList := TStringList.Create;
CommandS.Command:=3;
IdTCPClient1.Connect(-1);
IdTCPClient1.WriteBuffer(CommandS, SizeOf(CommandS));
Int:=IdTCPClient1.ReadInteger(true);
IdTCPClient1.ReadStrings(TempList); <- получаю "Connection Closed Gracefully"
Memo1.Lines.AddStrings(TempList);
IdTCPClient1.Disconnect;
TempList.Free;
end;
Кто подскажет, как TString через сетку протащить?
umbra (2006-07-25 15:51:00) [21]
> CommandServerException
А почему обработку команд Вы вешаете на обработчик исключений, возникающих в потоке, работающем с клиентом?
DanilinS (2006-07-25 15:51:00) [22]Сорри ... опечатка. CommandServerExecute естественно
CommandS: TCommand;
TCommand = record
Command: Byte;
Name: String [20];
end;
Reindeer Moss Eater (2006-07-25 15:27:00) [23]При чем здесь обработчик CommandServerException?
Что такое CommandS?