I use this approach: __fastcall httpClient::httpClient(TComponent *AOwner) : THttpCli(AOwner) { ... FCtrlSocket->OnMessagePump = MessagePump; FCtrlSocket->ComponentOptions << wsoNoReceiveLoop; } //---------------------------------------------------------------------------
Isn't this the right code? Regards, SZ ----- Original Message ----- From: "Dan" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Sunday, January 29, 2006 4:53 PM Subject: Re: [twsocket] THttpConnection throttling problem with timer >I seem to recall a similar thing happening for my throttledwsocket. I >think > I fixed it by setting the option NoReceiveLoop (not sure of the name, but > you know what I mean). Maybe your problem is related, worth a try. > > Dan > > ----- Original Message ----- > From: "Fastream Technologies" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Sunday, January 29, 2006 12:37 PM > Subject: Re: [twsocket] THttpConnection throttling problem with timer > > >> Hello, >> >> Perhaps we should think at the algorithm level. Here it is for your eyes >> only: ;) >> >> I want to throttle bandwidth of my reverse proxy which uses >> THttpConnection >> and inside it an associated THttpCli. >> >> Bandwidth and consumed bandwidth is per domain and protected by critical >> sections. >> There is a serverThread for the listener of THttpServer and there are the >> worker threads. >> >> This is the algorithm: >> In the worker thread: >> -once a data is sent or received, inc the countOfDataForLast100ms >> -every 100ms, a message is passed from the serverThread so that the value >> of >> countofDataForLast100ms is added to consumedBW >> >> In the server thread: >> -if msecs % 800 == 0 >> resetConsumedAmount(); >> resume all paused connections(); >> -else >> for each connection >> if it's not paused >> if the consumed bandwidth has exceeded the total bandwidth in a total >> period of 8 secs >> pause(); >> >> Do you see a problem with this algorithm? I cannot but it does not work. >> It >> has the following problems: >> - TryToSend in WSocket consumes 100% CPU >> - Bandwidth is not limited much (my test kBps is 100 but it downloads at >> 4.2MBps! >> >> Best Regards, >> >> SZ >> >> ----- Original Message ----- >> From: "Francois PIETTE" <[EMAIL PROTECTED]> >> To: "ICS support mailing" <twsocket@elists.org> >> Sent: Sunday, January 29, 2006 2:02 PM >> Subject: Re: [twsocket] THttpConnection throttling problem with timer >> >> >>>>> Not really. Each time I see a TTimer triggered every 100 mSec (or any >>>>> very >>>>> short time period), I know this will cause CPU problem. And bandwidth >>>>> limitation defenitely doesn't require a so short period of time. What >>>>> is >>>>> useful, regarding bandwidth limitation - is to have bandwidth limited >>>>> on >>>>> a >>>>> reasonable time period (a few second IMO). >>>> >>>> >>>> Francois, >>>> >>>> I disagree with this , >>>> >>>> When a user has a very high bandwidth (100 Mbs), sampling every second >>>> is >>>> way too slow. >>>> I you use 1000 msec sampling period, the throttle does not work work at >>>> all. >>>> Most likely, all data has been sent before the the throttle becomes >>>> active. >>> >>> Indeed. But nothing will be sent before the pause period has elapsed. >>> The >>> net effect is the actual bandwidth being limited to the programmed >>> level. >>> Of >>> course the instantaneous speed is _always_ the line speed. You can't >>> slow >>> down a packet, it is always sent at wire speed. But you can slow down >>> the >>> mean bandwidth computed on a given time interval. I pretend this time >>> interval should be at least a few seconds. Making this time interval >>> shorter >>> would impose a high CPU load without significant advantage. >>> >>> If you don't use persistant connection, then you should probably also >>> delay >>> the new connection while still in pause period (I'm not sure about the >>> pause >>> effect when connection is closed. I think it is simply ignored). >>> >>> -- >>> [EMAIL PROTECTED] >>> http://www.overbyte.be >>> >>> -- >>> To unsubscribe or change your settings for TWSocket mailing list >>> please goto http://www.elists.org/mailman/listinfo/twsocket >>> Visit our website at http://www.overbyte.be >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://www.elists.org/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be >> > > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be