IdTCPClient lesen in Thread
-
Hallo zusammen
Ich benutze für mein Applikation die IdTCPClient-Komponente.Das Lesen habe ich über einen Thread gelöst.
void __fastcall TForm1::IdTCPClient1Connected(TObject *Sender) { ReadThread = new TTCPRead(false,this); } void __fastcall TForm1::IdTCPClient1Disconnected(TObject *Sender) { if(ReadThread) ReadThread->Terminate(); }im Thread lese ich so die Daten aus:
void __fastcall TTCPRead::Execute() { FreeOnTerminate = true; unsigned char Byte; while(!Terminated) { StreamPack = new TStringStream(MainForm->IdTCPClient1->CurrentReadBuffer()); .... .... Synchronize(ReadPacket); delete StreamPack; } }Jetzt tritt bei jedem Disconnect ein EIdSocketError-Exception auf(Socket-Operation auf Nicht-Socket).
Wenn ich das richtige verstehe liegts daran dassStreamPack = new TStringStream(MainForm->IdTCPClient1->CurrentReadBuffer());noch auf die Daten wartet.
gibt es Möglichkeiten das zu beheben?
schonmal danke im voraus für jegliche tipps
BigNeal :xmas2: