I still have no clue why it's causing TCP stack to send
TCP zero window to the server... basically when the zero
window packet shows up, the connection will break.
As far as I know, TCP zero window is sent when the comiter is not able to
receive data anymore because the receive buffer is
Hi Francois,
As far as I know, TCP zero window is sent when the comiter is not able to
receive data anymore because the receive buffer is full. And still as far as
I know this is not an error if it doesn't persist for too long. It is simply
part of the control flow in TCP protocol.
Speaking
I finally found the problem. In OnDataAvailable, in one of
the cases Receive() did not read all the available data.
===8==Original message text===
Just to add a bit to the description of the problem - the
problem only happens when wsoNoReceiveLoop is used.
--
To
]
http://www.overbyte.be
- Original Message -
From: Jack [EMAIL PROTECTED]
To: ICS support mailing twsocket@elists.org
Sent: Sunday, December 31, 2006 8:20 AM
Subject: [twsocket] wsoNoReceiveLoop problem with bandwidth limiting
I borrowed some code from HttpProt.pas to limit bandwidth
In addition it also has a nice side effect. When it is set and you dont
want to receive for a while then just dont receive in OnDataAvailable.
Then from that moment OnDataAvailable will not fire until Receive is
called once again.
---
Rgds, Wilfried [TeamICS]
://www.overbyte.be
- Original Message -
From: Jack [EMAIL PROTECTED]
To: ICS support mailing twsocket@elists.org
Sent: Sunday, December 31, 2006 8:20 AM
Subject: [twsocket] wsoNoReceiveLoop problem with bandwidth limiting
I borrowed some code from HttpProt.pas to limit bandwidth
I borrowed some code from HttpProt.pas to limit bandwidth
in my application. My application is a client socket talking
to a server in a proprietary protocol. When I download a large
file, the connection always break. When I observe the traffic
in Ethereal, I see many error (in red and black)