Indy Server und Client Problem



  • Ich hab ein Problem. Ich möchte so ne Art Messenger schreiben. Ich möchte praktisch an den Clienten eine Nachricht auf Buttonklick senden.
    Hier erstmal der Code

    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      TCPServer->Active = True;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::TCPServerExecute(TIdPeerThread *AThread)
    {
      AThread->Connection->WriteLn(ListBox1->Items->Text);
      AThread->Connection->Disconnect();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      ListBox1->Items->Add(Memo1->Lines->Text);
      Memo1->Clear();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      try
      {
        ListBox1->Items->Add(TCPClient->ReadLn());
      }
      __finally
      {
        TCPClient->Disconnect();
      }
    }
    

    Jetzt bekomm ich von der Timeranweisung eine Exception EIDConnClosedGracefull.
    Wenn ich die Timeranweisung auskommentiere kommt die Meldung nicht mehr. TCPServer und TCPClient haben den selben Port



  • hat denn keiner ne Idee????



  • Nicht drägeln! Einmal am Tag nachfragen wenn keine Antwort kam reicht, nicht jede Stunde.
    Danke.

    J0



  • Das ist kein Fehler, das ist mehr ein Hinweis, dass die Verbindung erfolgreich getrennt wurde. Wenn du das Programm ausserhalb der IDE startest sollte der "Fehler" nicht mehr auftreten.



  • Mehr Informationen zu EIDConnClosedGracefully gibt's auch in der FAQ auf der Indy-Website.



  • Da die FAQ der offiziellen Seite (zumindest momentan) nicht erreichbar ist:
    http://www.mm.fh-mannheim.de/entwicklung/delphi/IndyFAQ.pdf


Anmelden zum Antworten