Indy TIdTCPClient recevoir des sms

J'essaie de recevoir du texte dans un idtcpclient mais il ne fonctionne pas. C'est le code que j'utilise un timer:

procedure TForm1.Timer2Timer(Sender: TObject);
var
  receivedtext:string;
begin
  if idtcpclient1.Connected = true then
  begin
    with idtcpclient1 do
    begin
      if not IOHandler.InputBufferIsEmpty then
      begin
        try
          receivedtext := IOHandler.ReadLn;
        finally
          if receivedtext = '' = false then
          begin
            showmessage(receivedtext);
            idtcpclient1.IOHandler.InputBuffer.Clear;
            receivedtext := '';
          end;
        end;
      end;
    end;
  end
  else
  begin
    timer2.Enabled := false;
  end;
end;

De l'intervalle du minuteur est de 8 ms.
La minuterie est activée automatiquement lors de la connexion.
Mais je n'ai pas une messagebox ou une erreur lorsque j'envoie quelque chose.
Je suis sûr que j'ai écrit les données, car quand j'utilise tclientsocket je ne le recevoir.

Ce que je fais de mal?

  • Ne receivedtext = '' = false même compiler? (Montrer votre vrai code s'il vous plaît)
  • Pourquoi avez-vous effacer la InputBuffer? Après un succès en Lecture... opération, Indy va supprimer les octets lus à partir de la InputBuffer.
  • Pourquoi avez-vous ce code dans un timer? Avec le code comme indiqué, vous aurez re-entrancy questions, en particulier avec une valeur de minuterie de 8ms.
  • Je pense que ton code est complètement faux. Utiliser google pour rechercher des exemples, comme la ... sourceforge.net/projects/indy10clieservr Première démo dans il devrait y aider "1_sample Chaîne Simple Échange"
InformationsquelleAutor jwz104 | 2014-04-03