[fpc-pascal] Best way to transfer data between applications?

Frank Church vfclists at gmail.com
Tue Oct 30 00:54:40 CET 2012


On 29 October 2012 09:43, Michael Van Canneyt <michael at freepascal.org>wrote:

>
>
> On Mon, 29 Oct 2012, 印場 乃亜 wrote:
>
>  Greetings,
>>
>> I am familiar with the basic underlying methods available for
>> transferring data between processes on Windows and Unix, i.e. Pipes, Shared
>> memory, and TCP/IP - but what I am not familiar with is any higher level
>> functionality that may be available on FPC.
>>
>> As an example:  I have one application with a daemon that uses the IPC
>> component to write to a file in CSV format, and then the user application
>> reads this (GPS location) data via IPC.  Then I have to re-convert this
>> string data into a series of floating point values manually, though.  The
>> IPC component doesn't seem to be reliable on all platforms either (it
>> sometimes blocks on OS X, and at least the debug client doesn't seem to
>> work at all on Windows 7).
>>
>> Another disadvantage is that the sequence of launching the applications
>> matters, and what's more, it seems there can only be one "client" per
>> "server" in many cases.
>>
>> More to the point, if I want to pass around structures, records,
>> etc.between processes - what is the best day?  For example, Javascript uses
>> JSON.  I know there are JSON libraries and various other libraries for
>> Pascal - but I don't know what is the most standard way.  (I think this
>> kind of marshalling/unmarshalling may be more standard in Java and C#, but
>> I don't know the "normal" way in Delphi/FPC).
>>
>> I would prefer to use built-in functionality, rather than learn yet
>> another library - and if learning a library, I would prefer to use one
>> with lots of users that is actively maintained.  Likewise, I would prefer
>> to actually "pass" the data, rather than just pass a pointer to it.  I
>> plan to have the processes run on the same machine, so I don't need a
>> solution that works with networking, though that would be fine, of course.
>>
>> Along the same lines, a convenient way to call functions/procedures with
>> parameters from the "other" process would be greatly appreciated.  (i.e.
>> something like RPC that handles OOP).
>>
>
> You should try WST.
>
> It's perfectly suitable for all this. It is actively used and maintained.
> You can choose which encoding (binary, soap, JSON) is used, and which
> protocol (Direct library, TCP socket, http).
>
> Michael.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>


I have to second Michael's response. Inoussa discussed on some thread some
time back and in fact I am lookiing to read it again.
Does anyone recall that thread?
-- 
Frank Church

=======================
http://devblog.brahmancreations.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20121029/a6b8a1e4/attachment.html>


More information about the fpc-pascal mailing list