Fila de envio e testar conexão (indy)

18/06/2008

1

boa tarde pessoal, estou querendo fazer uma coisa aqui que estou com mto problema para conseguir implementar...e gostaria de pedir mais uma vez a ajuda dos senhores...

é o seguinte, envio uma msg a um servidor, via paleta indy, esse servidor recebe a msg e envia para todos os ip´s da lista.
      try
         QIP.Close;
         QIP.Open;
         If not QIP.IsEmpty then
            begin
               While not QIP.Eof do
                  begin
                     try
                        IdTCPClientEnvia.Disconnect;
                        IdTCPClientEnvia.Host := QIPNumero_IP.AsString;
                        IdTCPClientEnvia.Port := 13351;
                        IdTCPClientEnvia.Connect;
                        IdTCPClientEnvia.WriteLn(texto);
                     except
                        beep;
                     end;

                     QIP.Next;
                  end;
            end;
         QIP.Close;
      except
         on E: Exception do
            begin
               AssignFile(F2,DIRETORIO+´ERROSERVER.LOG´);
               If not DirectoryExists(DIRETORIO) then
                  ForceDirectories(DIRETORIO);
               If not FileExists(DIRETORIO+´ERROSERVER.LOG´) Then
                  begin
                     Rewrite(F2);
                     CloseFile(F2);
                  end;
               Append(F2);
               Writeln(F2,´SERVIDOR =>"ERRO":´+ DATETOSTR(DATE)+ ´-´+TIMETOSTR(TIME)+´-´+E.Message + ´ - ´+QIPNumero_IP.AsString);
               CloseFile(F2);
            end;



nessa parte do código

               While not QIP.Eof do
                  begin
                     try
                        IdTCPClientEnvia.Disconnect;
                        IdTCPClientEnvia.Host := QIPNumero_IP.AsString;
                        IdTCPClientEnvia.Port := 13351;
                        IdTCPClientEnvia.Connect;
                        IdTCPClientEnvia.WriteLn(texto);
                     except
                        beep;
                     end;

                     QIP.Next;
                  end;

gostaria de fazer o seguinte : se não conseguir enviar, ele vai para um array ou coisa tipo e ao fim de todos os envios ele tenta enviar novamente esse registro... tentei algumas formas aqui mas todas foram furadas...

outra coisa se não for abusar mto, como poderia fazer uma rotina para testar de tempos em tempos a conexão?


Responder