[Lazarus] TInetSocket usage - any documentation available?
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Wed Oct 21 10:35:24 CEST 2015
Michael Schnell wrote:
> On 10/21/2015 12:33 AM, Bo Berglund wrote:
>> As Mark Morgan Lloyd has pointed out I *really* need to create an
>> encapsulated class for the TCPIP communications so I can use this as
>> an alternate component in the existing object and for this I need to
>> implement an onReceive event to plug the incoming data into it
>
> Sorry to be a PITA, again, but a command line application (which in the
> other message you said you would want to do) does not support throwing
> events from threads out of the box. (There is no Lazarus Linux workalike
> for a Delphi Service Application.). You would have to implement your own
> "main loop" to make this happen.
>
> That is why, to use the standard Lazarus and Delphi programming
> paradigms, I suggested to do a normal Lazarus GUI application on the RasPi.
Which is fine as a testbed, but not necessarily for production use. It's
particularly not fine if you want to start it on a regular basis from
cron or whatever, which I think Bo has already settled on.
I'm very much in two minds on this. I'm intermittently working on a
couple of fairly large programs which have elements of both daemon and
UI, having them as standard Lazarus apps makes inspection and debugging
much easier but inserts a large amount of complexity- X11, the widget
set (GTK or Qt), all of the LCL stuff- all of which has the potential
for bugs and unintended interactions.
Even if Bo did decide not to use cron but instead to have a Lazarus app
with its own embedded timing, he'd still have to organise startup and
having a screen- real or simulated- to run it on. And since a Raspberry
Pi needs a keyboard etc. in order to have a local screen, and since he's
not sorted out automatic VNC startup etc., I don't think this is the way
for him to go.
So noting your concern with events, the real question is still which
libraries etc. he should be running to implement a socket client
reliably in a console program. Or alternatively, how best to implement a
Windows-style service using Lazarus, which doesn't mandate a screen and
an initial login.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the Lazarus
mailing list