> WaitingData() returns e.g. 932 bytes, but consecutive RecvBuffer() reads
> 1 byte only and that situation repeats, see log fragment:
> 
>       [C>>S]  [CNT]  "1" bytes echoed
>       [C>>S]  [CNT]  "548" bytes echoed
>       [C<<S]  [CNT]  "1" bytes echoed
>       [C<<S]  [CNT]  "1208" bytes echoed

Yes, RecvBuffer (it calling socket read() inside) can read less then 
WaitingData says on stream sockets. So, it can happen. And it is 
depending on operation system version too. 

If you are using OpenSSL or other, then Waitingdata can be bigger 
then real value by Synapse design. Sometimes can be returned value 
from the underlaying socket, even SSL plugin does not yet receive 
full block for decrypt. 

But what is interesting... why it is changed now in your case?
Is it always "1 byte and rest"? Is not changed sending side? Or some 
new firewall between?

For example, if sending side send first byte in separate packet 
(separate send() API call) and resting data in the second packet, 
then it can be readed separately.



-- 
Lukas Gebauer.

http://synapse.ararat.cz/ - Ararat Synapse - TCP/IP Lib.
https://www.geoget.cz/ - Geocaching solution



_______________________________________________
synalist-public mailing list
synalist-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to