I see a second problem in your code:
} while (length != totalDataReceived && FWSocket->State == wsConnected
&& !Terminated && timeout < MAX_TIMEOUT);
Dont loop in DataAvailable. Just receive the part of data that is
received and exit. When next chunck of data come in the OnDataAvailable
will be fired again. TCP protocol does not respect data boundaries.
Met vriendelijke groeten,
Wilfried Mestdagh
Op 09-01-18 om 18:01 schreef Wilfried Mestdagh:
Hi,
The problem could be in this peace of code:
int length = FWSocket->RcvdCount;
if(length == 0)
{
Debug::DebugString(AnsiString("FWSocketDataAvailable length ")
+ IntToStr(length));
return;
}
RcvdCount is not reliable. This is not a TWSocket problem but a
Windows problem. Even if it returns zero the you should try to receive
data. So just leave that part out of it.
Rgds, Wilfried
Met vriendelijke groeten,
Wilfried Mestdagh
Op 09-01-18 om 15:48 schreef Alessandro Miorelli:
Hi,
I'm working with ICS and BCB6
All works fine but sometimes I don't receive OnDataAvailable event
anymore.
In attach the code.
Please could you help me
Regards
Ing. Alessandro Miorelli
Software Engineer
--
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