Re: [twsocket] UDP request/response proto
Angus Robertson - Magenta Systems Ltd wrote: >> Unfortunately the callback requires a window handle as well. > > But zero is fine for the handle. I use this code in a DLL to close > a database on inactivity. Thanks Angus, sometimes, especially after a 16 hours day it may happen that I even forget the meaning of a simple callback, it's high time to go fishing ;-) > > Angus > > procedure TimerProc (Wnd: HWnd; Msg: Integer; Id: Integer; > CurrentTime: DWord) ; stdcall ; > begin >SetTimerEnabled (false) ; >doDBClose ; > end; > > procedure SetTimerEnabled (const Value: Boolean); > begin > if TimerEnabled = Value then Exit; > if Value then > begin > TimerHandle := SetTimer (0, 0, TimerInterval, @TimerProc) ; > end > else > begin > if TimerHandle <> 0 then > begin > KillTimer (0, TimerHandle) ; > TimerHandle := 0 ; > end; > end; > TimerEnabled := Value; > end; -- 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
Re: [twsocket] UDP request/response proto
Francois PIETTE wrote: >> Unfortunately the callback requires a window handle as well. > > And what is the problem ? Use the TWSocket handle. Thanks, I must have had a blackout yesterday evening. The handle of the window used by Windows internally is passed. --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html > -- > [EMAIL PROTECTED] > http://www.overbyte.be > > > - Original Message - > From: "Arno Garrels" <[EMAIL PROTECTED]> > To: "ICS support mailing" > Sent: Thursday, August 17, 2006 8:10 PM > Subject: Re: [twsocket] UDP request/response proto > > >> Francois PIETTE wrote: >>>>>> What's annoying is that a TTimer creates a window and also >>>>>> requires ExtCtrls.pas to be included. >>>>> >>>>> On my site you find a serial comport component (TCiaComPort). It >>>>> has a custom Timer on board that does not create a window, but can >>>>> use an existing window. >>>> >>>> Thanks Wilfried, but that doesn't help much since in ICS V6 yuo >>>> can't use the ICS component window for such purposes. >>>> Is there any way to create a timer without a window being >>>> required, I think >>>> it's not possible. So probably writing a custom timer (which >>>> requires a window anyway maybe a solution/workaround, if you don't >>>> want ExtCtrls to be included). >>> >>> You can use SetTimer API which can either use a message or a >>> callback function. So using a callback function will be what you >>> need. >> >> Unfortunately the callback requires a window handle as well. >> >> VOID CALLBACK TimerProc( >>HWND hwnd, >>UINT uMsg, >>UINT_PTR idEvent, >>DWORD dwTime >> ); >> >> --- >> 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] >>> 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
Re: [twsocket] UDP request/response proto
> Unfortunately the callback requires a window handle as well. But zero is fine for the handle. I use this code in a DLL to close a database on inactivity. Angus procedure TimerProc (Wnd: HWnd; Msg: Integer; Id: Integer; CurrentTime: DWord) ; stdcall ; begin SetTimerEnabled (false) ; doDBClose ; end; procedure SetTimerEnabled (const Value: Boolean); begin if TimerEnabled = Value then Exit; if Value then begin TimerHandle := SetTimer (0, 0, TimerInterval, @TimerProc) ; end else begin if TimerHandle <> 0 then begin KillTimer (0, TimerHandle) ; TimerHandle := 0 ; end; end; TimerEnabled := Value; end; -- 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
Re: [twsocket] UDP request/response proto
> Unfortunately the callback requires a window handle as well. And what is the problem ? Use the TWSocket handle. -- [EMAIL PROTECTED] http://www.overbyte.be - Original Message - From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" Sent: Thursday, August 17, 2006 8:10 PM Subject: Re: [twsocket] UDP request/response proto > Francois PIETTE wrote: >>>>> What's annoying is that a TTimer creates a window and also requires >>>>> ExtCtrls.pas to be included. >>>> >>>> On my site you find a serial comport component (TCiaComPort). It >>>> has a custom Timer on board that does not create a window, but can >>>> use an existing window. >>> >>> Thanks Wilfried, but that doesn't help much since in ICS V6 yuo >>> can't use the ICS component window for such purposes. >>> Is there any way to create a timer without a window being required, I >>> think >>> it's not possible. So probably writing a custom timer (which >>> requires a window anyway maybe a solution/workaround, if you don't >>> want ExtCtrls to be included). >> >> You can use SetTimer API which can either use a message or a callback >> function. So using a callback function will be what you need. > > Unfortunately the callback requires a window handle as well. > > VOID CALLBACK TimerProc( >HWND hwnd, >UINT uMsg, >UINT_PTR idEvent, >DWORD dwTime > ); > > --- > 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] >> 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
Re: [twsocket] UDP request/response proto
Hello Arno, I have to check, but I think there is also be an option to create a timer without have a window. then it post a message to a message queue. another option is to create a custom timer using a thread. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz Thursday, August 17, 2006, 19:38, Arno Garrels wrote: > Wilfried Mestdagh wrote: >> Hello Arno, >> >>> What's annoying is that a TTimer creates a window and also requires >>> ExtCtrls.pas to be included. >> >> On my site you find a serial comport component (TCiaComPort). It has a >> custom Timer on board that does not create a window, but can use an >> existing window. > Thanks Wilfried, but that doesn't help much since in ICS V6 yuo can't use > the ICS component window for such purposes. > Is there any way to create a timer without a window being required, I think > it's not possible. So probably writing a custom timer (which requires a > window anyway maybe a solution/workaround, if you don't want ExtCtrls to > be included). > --- > Arno Garrels [TeamICS] > http://www.overbyte.be/eng/overbyte/teamics.html >> It does not have to include ExtCtrls.pas or any other >> that enlarge console programs. It was on question of one of my users >> to include timeouts and still have a small exe. >> >> If you can use it you can copy the code from the unit. >> >> --- >> Rgds, Wilfried [TeamICS] >> http://www.overbyte.be/eng/overbyte/teamics.html >> http://www.mestdagh.biz -- 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
Re: [twsocket] UDP request/response proto
Francois PIETTE wrote: What's annoying is that a TTimer creates a window and also requires ExtCtrls.pas to be included. >>> >>> On my site you find a serial comport component (TCiaComPort). It >>> has a custom Timer on board that does not create a window, but can >>> use an existing window. >> >> Thanks Wilfried, but that doesn't help much since in ICS V6 yuo >> can't use the ICS component window for such purposes. >> Is there any way to create a timer without a window being required, I >> think >> it's not possible. So probably writing a custom timer (which >> requires a window anyway maybe a solution/workaround, if you don't >> want ExtCtrls to be included). > > You can use SetTimer API which can either use a message or a callback > function. So using a callback function will be what you need. Unfortunately the callback requires a window handle as well. VOID CALLBACK TimerProc( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime ); --- 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] > 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
Re: [twsocket] UDP request/response proto
>>> What's annoying is that a TTimer creates a window and also requires >>> ExtCtrls.pas to be included. >> >> On my site you find a serial comport component (TCiaComPort). It has a >> custom Timer on board that does not create a window, but can use an >> existing window. > > Thanks Wilfried, but that doesn't help much since in ICS V6 yuo can't use > the ICS component window for such purposes. > Is there any way to create a timer without a window being required, I > think > it's not possible. So probably writing a custom timer (which requires a > window anyway maybe a solution/workaround, if you don't want ExtCtrls to > be included). You can use SetTimer API which can either use a message or a callback function. So using a callback function will be what you need. -- Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [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
Re: [twsocket] UDP request/response proto
Wilfried Mestdagh wrote: > Hello Arno, > >> What's annoying is that a TTimer creates a window and also requires >> ExtCtrls.pas to be included. > > On my site you find a serial comport component (TCiaComPort). It has a > custom Timer on board that does not create a window, but can use an > existing window. Thanks Wilfried, but that doesn't help much since in ICS V6 yuo can't use the ICS component window for such purposes. Is there any way to create a timer without a window being required, I think it's not possible. So probably writing a custom timer (which requires a window anyway maybe a solution/workaround, if you don't want ExtCtrls to be included). --- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html > It does not have to include ExtCtrls.pas or any other > that enlarge console programs. It was on question of one of my users > to include timeouts and still have a small exe. > > If you can use it you can copy the code from the unit. > > --- > Rgds, Wilfried [TeamICS] > http://www.overbyte.be/eng/overbyte/teamics.html > http://www.mestdagh.biz -- 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
Re: [twsocket] UDP request/response proto
Hello Arno, > What's annoying is that a TTimer creates a window and also requires > ExtCtrls.pas to be included. On my site you find a serial comport component (TCiaComPort). It has a custom Timer on board that does not create a window, but can use an existing window. It does not have to include ExtCtrls.pas or any other that enlarge console programs. It was on question of one of my users to include timeouts and still have a small exe. If you can use it you can copy the code from the unit. --- Rgds, Wilfried [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html http://www.mestdagh.biz -- 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
Re: [twsocket] UDP request/response proto
> What's annoying is that a TTimer creates a window and also requires > ExtCtrls.pas to be included. You may use Windows API to avoid TTimer and ExtCtrls. > 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? There are message pump which does more than simply get the message and dispatch it. And should any exception be raised, then it is no more in the same context as - for example the forms unit message pump. I ended up having an event propagated everywhere so that the component user can use his own message pump. -- Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] http://www.overbyte.be - Original Message - From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" Sent: Thursday, August 17, 2006 4:59 PM Subject: Re: [twsocket] UDP request/response proto > 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" >> 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, freewa
Re: [twsocket] UDP request/response proto
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" > 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" >>> 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
Re: [twsocket] UDP request/response proto
> 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. 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. 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" 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" > > 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
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" > 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
Re: [twsocket] UDP request/response proto
> and unexpected sender? Should I consider a pending > request as failed or should I just ignore such packets? Use ReceiveFrom to know from where the packet is comming and throw it away if you don't like the sender. > 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. 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" 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
[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