<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Known factors:<BR>
&nbsp;<BR>
1. I don't know what size message will be returned.<BR>
&nbsp;<BR>
2. The message always ends in CR LF<BR>
&nbsp;<BR>
3. The message is always printable ASCII (not Unicode).<BR>
&nbsp;<BR>
<BR><BR>&nbsp;<BR>

<HR id=stopSpelling>
<BR>
Date: Thu, 4 Dec 2008 09:48:52 +1300<BR>From: kyleyharris@gmail.com<BR>To: delphi@delphi.org.nz<BR>Subject: Re: [DUG] Indy Sockets - How to Receive Asynchronously<BR><BR>Also, I guess the type of data and your message layer has a big impact on how you design your data receiver.<BR>
<DIV><BR></DIV>
<DIV>in my own client/servers where I control the protocol, all my messages first send an 8byte size packet.. So my read queue is constantly just doing &nbsp;ASize := StrToInt( '$'+ReadString(8) ) { 8 byte hex } and this is looping.. as soon as I get a successful size I can then read the specific size of data into a message object and continue polling. If I need to send very large data like binary files,, I break it down into smaller packets encapsulated in messages using the above method.<BR><BR>
<DIV class=EC_gmail_quote>On Thu, Dec 4, 2008 at 9:31 AM, Eric A <SPAN dir=ltr>&lt;<A href="mailto:eaa603@hotmail.com">eaa603@hotmail.com</A>&gt;</SPAN> wrote:<BR>
<BLOCKQUOTE class=EC_gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: #ccc 1px solid">
<DIV>Kyley,<BR>&nbsp;<BR>No program design yet.&nbsp; Questions:<BR>&nbsp;<BR>1) Inside the thread - do I have to implement a timer event to periodically check the buffer (since there's no "data received" event)?&nbsp; <BR>&nbsp;<BR>2) What properties do I read to determine if there's received data available?&nbsp; <BR>&nbsp;<BR>3) Do I need to use another Indy component in conjunction with the TCPClient for the buffering etc?<BR>&nbsp;<BR>&nbsp;<BR>Paul,<BR>&nbsp;<BR>I'll take a look at that site.&nbsp; Are you using ICS extensively?<BR>&nbsp;<BR>&nbsp;<BR>Thanks,<BR>Eric<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR><BR><BR>&nbsp;<BR>
<HR>
<BR>Date: Thu, 4 Dec 2008 09:21:03 +1300<BR>From: <A href="mailto:kyleyharris@gmail.com">kyleyharris@gmail.com</A><BR>To: <A href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A><BR>Subject: Re: [DUG] Indy Sockets - How to Receive Asynchronously
<DIV>
<DIV></DIV>
<DIV class=EC_Wj3C7c><BR><BR>Indy is blocking, so typically on the client side, you would create a waiting thread that you sit the TCPClient inside and loop a readtimeout until the resultbuffer has some data. At that point produce a local event so that your main thread can grab the TCPClient and read the information.<BR>
<DIV><BR></DIV>
<DIV>without knowing your actual program design and how your TCP layer interacts with your main application its hard to offer any detailed advise, sorry.&nbsp;<BR><BR>
<DIV>On Thu, Dec 4, 2008 at 9:14 AM, Paul <SPAN dir=ltr>&lt;<A href="mailto:paul.blommaerts@telenet.be">paul.blommaerts@telenet.be</A>&gt;</SPAN> wrote:<BR>
<BLOCKQUOTE style="PADDING-LEFT: 1ex; BORDER-LEFT: #ccc 1px solid">
<DIV>
<DIV><FONT face=Arial>Indy works blocking only</FONT></DIV>
<DIV><FONT face=Arial>Use ICS instead, they work blocking or non blocking.</FONT></DIV>
<DIV><FONT face=Arial>check <A href="http://www.overbyte.be/">www.overbyte.be</A></FONT></DIV>
<DIV><FONT face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial>Paul</FONT></DIV>
<BLOCKQUOTE style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>
<DIV></DIV>
<DIV>
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV style="BACKGROUND: #e4e4e4; FONT: 10pt arial"><B>From:</B> <A title=eaa603@hotmail.com href="mailto:eaa603@hotmail.com">Eric A</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=delphi@delphi.org.nz href="mailto:delphi@delphi.org.nz">Delphi UsersGroup</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, December 03, 2008 8:55 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [DUG] Indy Sockets - How to Receive Asynchronously</DIV>
<DIV><BR></DIV>I have a situation where I need to communicate with a communications server using Indy TCP sockets.&nbsp; <BR>&nbsp;<BR>After sending the command the server returns an "OK" response with a second or two to acknowledge the acceptance of the command, however the reponse from the end device (returned via the server) may take several minutes to eventuate (or a else the sever returns a timeout message).&nbsp; I need to be able to buffer the responses, be aware of when new strings arrinve, and carry on with other tasks.&nbsp; This&nbsp;threading aspect shouldn't be an issue as I understand that Indy is naturally multitrheaded by design.<BR>&nbsp;<BR>I'm not familiar with using the Indy sockets and since there's no "received data event" (due to the nature of the design) I'm wondering how I capture the asynchronous responses sensibly?<BR>&nbsp;<BR>Does anyone have some code to show me how to use the Indy 10&nbsp;TCPClient component in this way (for the receive part) ?&nbsp; Its probably pretty simple but I need to get my head around it quickly.<BR>&nbsp;<BR>Thanks<BR>&nbsp;<BR>Eric<BR><BR>
<HR>
Start searching now <A href="http://a.ninemsn.com.au/b.aspx?URL=http://www.allrealestate.co.nz/cgi-bin/rsearch?a%3Dbhp%26t%3Dren%26cu?rsf%3Dmsnz_textlink&amp;_t=26000&amp;_r=REANZ_tagline&amp;_m=EXT">Rental properties galore.</A> </DIV></DIV><BR>
<HR>
<BR>_______________________________________________<BR>NZ Borland Developers Group - Delphi mailing list<BR>Post: <A href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A><BR>Admin: <A href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</A><BR>Unsubscribe: send an email to <A href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</A> with Subject: unsubscribe <BR></BLOCKQUOTE></DIV><BR>_______________________________________________<BR>NZ Borland Developers Group - Delphi mailing list<BR>Post: <A href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A><BR>Admin: <A href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</A><BR>Unsubscribe: send an email to <A href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</A> with Subject: unsubscribe<BR></BLOCKQUOTE></DIV><BR><BR clear=all><BR>-- <BR>Kyley Harris<BR>Harris Software<BR>+64-21-671-821<BR></DIV><BR></DIV></DIV>
<DIV class=EC_WgoR0d>
<HR>
MSN NZ Travel <A href="http://a.ninemsn.com.au/b.aspx?URL=http://travel.msn.co.nz&amp;_t=771497011&amp;_r=MSN_NZ_travel_hmtagline&amp;_m=EXT">Get inspired - dream, research, plan and book your next holiday online with </A></DIV></DIV><BR>_______________________________________________<BR>NZ Borland Developers Group - Delphi mailing list<BR>Post: <A href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A><BR>Admin: <A href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</A><BR>Unsubscribe: send an email to <A href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</A> with Subject: unsubscribe<BR></BLOCKQUOTE></DIV><BR><BR clear=all><BR>-- <BR>Kyley Harris<BR>Harris Software<BR>+64-21-671-821<BR></DIV><br /><hr />MSN NZ Travel  <a href='http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Ftravel%2Emsn%2Eco%2Enz&_t=771497011&_r=MSN_NZ_travel_hmtagline&_m=EXT' target='_new'>Get inspired - dream, research, plan and book your next holiday online with </a></body>
</html>