Richard, > I was looking over my project and see that the processmessages loop I > said allows the program to complete successfully is enabled. To allow > the error this needs to be commented out. It's at the end of > WSocketServerClientConnect.
I removed these lines. However it works (basically) with the changes posted in my previous message with latest ICSv7 and C++ Builder 2007. Tested with NNTP and HTTP (8 local clients). But since you use LineMode there's a problem with binary data because DataAvailable might not trigger when LineEnd is not received. Use LineMode only if the protocol is 100% line-based. There's also a bug with shutting down the local client. After a call to ShutDown(1) it is no longer allowed to send data, however there might be still data in component's send buffer, so in order to avoid a socket exception and to make sure the local client gets everything add a flag to your client class and handle event OnDataSent, something like: void __fastcall TSocketWin::ClientDataSent(TObject *Sender, WORD ErrCode) { [..] if (client->closeflag) client->Shutdown(1); } and void __fastcall TSocketWin::RemoteSessionClosed(TObject *Sender, WORD Error) { [..] if (client->AllSent) client->Shutdown(1); else client->closeflag = true; } -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be