> I try to avoid the low level winsock stuff, but I do know that > TIcsBufferHandler is used to store > everything before it is sent, each buffer is 1460 bytes (TCP packet size).
> So your application would be allocating 13,700 linked buffer pages before > anything was sent, which is > quite an overhead, and something the unit was never designed to handle. I assure you a typical system is easily able to handle 13700 buffers each being 1460 bytes. I agree that this is often not the most technically correct way to handle a problem, yet sometimes it is. Buffer handling in Ics is fine and exactly what is required in some situations. But anyway, my problem was not due to send() not working on the server side. Rather, I determined that the client application was not consistently consuming the data it was receiving, thus the socket's receive buffer would fill and not accept further data from the server. I saw this by sniffing the packets and seeing the Window parameter from client packets becoming 0 sometimes. While researching the cause for this misbehaviour, I came across this: http://support.microsoft.com/kb/192599 Citation: " INFO: Avoid Data Peeking in Winsock". The article explains that querying the socket for the amount of data in the receive buffer in order to later retrieve that data does not work well on Windows. This is just what TWSocket.RcvdCount does, and this is what I was using in my client application to consume received data. After changing this to use the result of Receive instead, everything works fine. I also saw this in OverbyteIcsWSocket.pas: Nov 26, 2000 V4.25 Do not trust GetRcvdCount. Always call Receive to check for incomming data (sometime NT4 will hang if we don't do that). It might be good to advertise more strongly against RcvdCount and GetRcvdCount... Unless this is something most people already know and I missed it? If so, I apologize for taking your time on this channel. Cheers, Raymond -----Original Message----- From: TWSocket [mailto:twsocket-boun...@lists.elists.org] On Behalf Of Angus Robertson - Magenta Systems Ltd Sent: July-03-13 11:45 AM To: twsocket@lists.elists.org Subject: Re: [twsocket] Problem sending large block of data > Looking at TWSocket code, I don't see why one could not send 20MB in > one chunk Angus -- 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 -- 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