Hi Moro,

I am happy to help with C++ here. You originally said that you wrap the Send in a try/catch, but that's not apparent from the code sample below.

Are you able to send me the full source code so I can see what it's doing, as well as looking at how you connect and manage the clients?

Regards,

Bevan


On 16/04/2015 1:58 a.m., Moro Alexandre wrote:
Hello Angus,

Thanks for your reply.

These are the number you provide in your changelog :

r1250 | angus | 2015-03-26 12:07:09 +0000 (Thu, 26 Mar 2015) | 5 lines

Mar 26, 2015 V8.16

r1196 | aguser | 2013-12-01 15:06:38 +0000 (Sun, 01 Dec 2013) | 1 line

I do not handle any client since this management is internal to
TWSocketServer.

The really only thing i do is to send String with SendStr :

mpWSocketServer->Addr = "0.0.0.0";

mpWSocketServer->Port = mHostPort;

mpWSocketServer->Proto = "tcp";

mpWSocketServer->Listen();

And when i send data :

for (int i = 0; i < mpWSocketServer->ClientCount; i++)

                 {

mpWSocketServer->Client[i]->SendStr(frame);

mpWSocketServer->Client[i]->Flush();

}

I added the OnBGexception on both TWSocketServer and client :

void __fastcall TServerSocketEngine::ClientBgException(TObject   *Sender,

Exception *E,

bool &CanClose)

{

CanClose = TRUE;   // Goodbye client !

}

In the example i can read :

// This event handler is called when a client socket experience a background

// exception. It is likely to occurs when client aborted connection and data

// has not been sent yet.

Now, i first receive the Stack overflow Exception,

then the ClientBgException() is called with this Overflow,

and at least, a couple of seconds later, the program crash on an EAccess
Violation and can't be recovered.

C++ XE3 focus me on the line 16233 of the file OverbyteIcsWSocket.pas below
the line of begin :

procedure TCustomSslWSocket.Do_FD_WRITE(var Msg: TMessage);

var

     Len        : Integer;    // How much to send

     Buffer     : array [0..16383] of AnsiChar;

     NumRead    : Integer;

     NumSent    : Integer;

     Err        : Longword;

begin

     if (not FSslEnable) or (FSocksState <> socksData) or

        (FHttpTunnelState <> htsData) then begin

         inherited Do_FD_WRITE(msg);

         Exit;

     end;

I really don't know what can i do anymore !

PS : Is it normal that i can't compile ICS in release mode ?

Thanks.



--
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

Reply via email to