Всем привет!
Есть приложение Клиент-Сервер. Задача формировать отчеты на стороне клиента и далее отправка этого файла на сервер.
Я отправляю клиенту определенное сообщение, клиент принимает и отправляет сформированный отчет.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | procedure TForm1 . M1Click(Sender: TObject);
var
MSG: string ;
SelectedItem, i: integer ;
begin
SelectedItem := StrToInt(ListView1 . Items[ListView1 . ItemIndex].SubItems[ 1 ]);
if Form4 . ShowModal = mrOK then
begin
MSG:= Form4 . Edit1 . Text;
MSG:= StringReplace(MSG, '.' , ' ' , [rfReplaceAll, rfIgnoreCase]);
for i := 0 to ServerSocket1 . Socket . ActiveConnections - 1 do
begin
if ServerSocket1 . Socket . Connections[i].Handle = SelectedItem then
begin
ServerSocket1 . Socket . Connections[i].SendText( '#report#=' + MSG);
Break;
end ;
end ;
end ;
end ;
|
По одиночке - все работает. Не могу придумать, что делать в случае если надо отправить эту команду для всех по очереди, при этом ждать пока скачается предыдущий файл...
как пример... но это не работает так как нужно..
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | procedure FileReceiveThread . Execute;
var
MSG: string ;
i: integer ;
Count: integer ;
begin
if Form4 . ShowModal = mrOK then
begin
MSG:= Form4 . Edit1 . Text;
MSG:= StringReplace(MSG, '.' , ' ' , [rfReplaceAll, rfIgnoreCase]);
Count:= Form1 . ServerSocket1 . Socket . ActiveConnections;
for i := 0 to Count do
begin
if Form1 . Gauge1 . Progress = 0 then
begin
Form1 . ServerSocket1 . Socket . Connections[i].SendText( '#report#=' + MSG);
end else
begin
Sleep( 5000 );
end ;
end ;
end ;
end ;
|
буду благодарен за помощь и идеи
