I found something that might also be issue with pop3 component.

If you check one pop3 account and end the session usually LastResponse
will be some ending message like "+OK sayonara". But if you then
reinitialize pop3 for another account and this account fails to
connect, for example due to timeout you get for example "-ERR
Connection refused (Winsock error #10061)" but LastResponse is still
"+OK sayonara" although it should be invalidated and set to empty
string. Or, there should be IMO a method ClearLastResponse as
LastResponse is not a writeable property right now. Checking on both
messages (LastError and LastResponse) is useful for debugging purposes
so they should be a possibility to manually (by calling
"ClearLastResponse") or automatically invalidate LastResponse.

Furthermore, although Error code is accessible in for example
OnRequestDone it is not accessible within the pop3 component and the
code may sometimes be 10061 which is Winsock code or 500 which is pop3
component code. Nothing that can't be done with little RegEx on
LastError but why not publishing this as well?

I've done quite a bit of testing for Throttle and Timeout. While
Timeout works rather nice as far as Idle version goes, connect version
is usually preceded by Windows built-in timeout (unless you set
connect timeout to very low time like 1 second) Windows may time-out
the connection much sooner than connect timeout did. Other that that
it works fine. Try connecting to, unroutable address like, or, and existing but firewalled like
www.google.com:81 to test this. I'm not sure if it applies only to
later Windows and haven't tested with older Windows than XP.

As for Throttle, it works but rather strangely. If I set limit to 1
and timer to 1000 it should pass 1 byte every 1000ms and accumulate
the rest in internal buffer right? Well it doesn't work like if you do
something like SendStr("Some large string here") it will send entire
string and then wait for 1000 ms rather than sending just one byte
every 1000 ms. At least this is how throttle should work - send a
maximum of Limit bytes every Timer interval and if more is available,
store in internal buffer for sending later. It may be tricky to
implement as data could accumulate in memory but not sure about that
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

Reply via email to