Olivier Sannier wrote: > Isn't it what CloseDelayed is meant for? CloseDelayed won't reenter the event, however to ensure that last data packets are received properly before the socket is closed call ShutDown() for a gracefull close in DataSent event handler.
-- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html > > Francois Piette wrote: >> You should call Shutdown to gracefully close the connection. >> If you want to call close, do it using an intermediate custom >> message. -- >> [EMAIL PROTECTED] >> Author of ICS (Internet Component Suite, freeware) >> Author of MidWare (Multi-tier framework, freeware) >> http://www.overbyte.be >> >> >> ----- Original Message ----- >> From: <[EMAIL PROTECTED]> >> To: <twsocket@elists.org> >> Sent: Wednesday, October 03, 2007 12:04 AM >> Subject: [twsocket] TWSocketThrdServer - Bogus OnDataAvailable >> triggeredwhen Closed. >> >> >> >>> Hello: >>> I'm using TWSocketThrdServer and processing >>> client data from within the OnDataAvailable event >>> handler (client is set to LineMode=True). I've >>> noticed that if the data transaction is completed and >>> I call Client.Close from within this event, the event >>> is called again with the previous ReceivedStr. >>> >>> Here's a sample of the code I am using: >>> >>> Procedure TMyServer.HandleDataAvailable(Sender: >>> TObject; Error: Word); >>> Var >>> DataStr: String; >>> bDone: Boolean; >>> Begin >>> If (Error = 0) Then Begin >>> With (Sender As TMyClient) Do Begin >>> DataStr := ReceiveStr; >>> >>> // parse the DataStr and do >>> // whatever needs to be done. >>> // bDone may be set here. >>> >>> If (bDone) Then Begin >>> SendLine('Sayonara.'); >>> TMyClient(Sender).Close; // <<-- HERE! >>> End; >>> End; >>> End Else Begin >>> // Handle errors... >>> TMyClient(Sender).Abort; >>> End; >>> End; >>> >>> When that Close method is called, the event is >>> immediately re-entered with the same data. Am I >>> doing something stupid? >>> >>> Thanks, >>> -dZ. >>> >>> -- >>> To unsubscribe or change your settings for TWSocket mailing list >>> please goto http://www.elists.org/mailman/listinfo/twsocket >>> Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be