Francois Piette wrote:
>> I do not know how to write this as an async component method w/o
>> a timer, but I can write it as a sync method by some wait
>> function which processes messages and either starts retransmissions
>> or triggers a final timeout when no response hasbeen received.
> 
> There is no real differnece in using a TTimer or using
> MsgWaitForMultipleObject. The code you place when
> MsgWaitForMultipleObject return with a timeout is the code you put in
> TTimer event.

What's annoying is that a TTimer creates a window and also requires
ExtCtrls.pas to be included. I also wanted to provide sync as well as
asyc methods.
 
> 
> For short times, less than 250 mS, MsgWaitForMultipleObject is better
> than TTimer. The annoying part of MsgWaitForMultipleObject is that
> you have to make a loop and call the message pump. That is really
> annoyng when you don't know what is the message pump, for example in
> a thread. 

Can you please explain why that's a problem.
In a thread, when MsgWaitForMultipleObjects returns due to pending 
message(s) I use Peekmessage() and dispatch them, why isn't it
effective? 

---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
  

> TTimer has not this problem. You just let it go, assuming
> the message pump is working somewhere. 
> 
> TTimer was a limitation is old Windows version. I think today you can
> have as many timers as you like (to be verifyed in MSDN).
> 
> Contribute to the SSL Effort. Visit
> http://www.overbyte.be/eng/ssl.html --
> [EMAIL PROTECTED]
> Author of ICS (Internet Component Suite, freeware)
> Author of MidWare (Multi-tier framework, freeware)
> http://www.overbyte.be
> 
> 
> ----- Original Message -----
> From: "Arno Garrels" <[EMAIL PROTECTED]>
> To: "ICS support mailing" <twsocket@elists.org>
> Sent: Thursday, August 17, 2006 12:26 PM
> Subject: Re: [twsocket] UDP request/response proto
> 
> 
>> Francois Piette wrote:
>>>> Also, if I do not use some kind of a wait function
>>>> in order to make a request blocking (like WaitUntilReady),
>>>> it's mandatory to use a timer, correct?
>>> 
>>> Sorry, I don't understand.
>> 
>> Indeed badly expressed, I had the STUN proto in mind when I
>> wrote it.
>> In STUN, reliability is accomplished through client
>> retransmissions. If no response is received by 1.6
>> seconds after the last request has been sent, the client SHOULD
>> consider the transaction to have failed. In other words, requests
>> would be sent at times 0ms, 100ms, 300ms, 700ms, 1500ms, 3100ms,
>> 4700ms, 6300ms, and 7900ms. At 9500ms, the client considers the
>> transaction to have failed if no response has been received.
>> 
>> I do not know how to write this as an async component method w/o
>> a timer, but I can write it as a sync method by some wait
>> function which processes messages and either starts retransmissions
>> or triggers a final timeout when no response hasbeen received.
>> 
>> ---
>> Arno Garrels [TeamICS]
>> http://www.overbyte.be/eng/overbyte/teamics.html
>> 
>> 
>>> Contribute to the SSL Effort. Visit
>>> http://www.overbyte.be/eng/ssl.html --
>>> [EMAIL PROTECTED]
>>> Author of ICS (Internet Component Suite, freeware)
>>> Author of MidWare (Multi-tier framework, freeware)
>>> http://www.overbyte.be
>>> 
>>> ----- Original Message -----
>>> From: "Arno Garrels" <[EMAIL PROTECTED]>
>>> To: "ICS support mailing" <twsocket@elists.org>
>>> Sent: Thursday, August 17, 2006 10:27 AM
>>> Subject: [twsocket] UDP request/response proto
>>> 
>>> 
>>>> Hello,
>>>> 
>>>> I UDP sendto a request datagram to the server,
>>>> when OnDataAvailable triggers I call ReceiveFrom()
>>>> in order to read the response.
>>>> But I think OnDataAvailable is being triggered when
>>>> any datagram addressed to that port arrives, even
>>>> datagrams not sent by the destination server. How
>>>> to handle this situation when some data arrive from
>>>> and unexpected sender? Should I consider a pending
>>>> request as failed or should I just ignore such packets?
>>>> 
>>>> Also, if I do not use some kind of a wait function
>>>> in order to make a request blocking (like WaitUntilReady),
>>>> it's mandatory to use a timer, correct?
>>>> 
>>>> ---
>>>> Arno Garrels [TeamICS]
>>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>>> 
>>>> --
>>>> 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

Reply via email to