> 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