Hi,
I can't speak for FPC's IPC library.
I fact, i was thinking about FPC's IPC library.
But that seems not possible, with the FPC's IPC library, because:
- under Windows \ Wine, the communication is done by a
TxxxMsgClientComm Class, with sendMessageof a WM_DATA structure, from the IPC client towards the handle returned by a
FindWindow('NameOfServerIPC'), handle of a window having a standard loop (
while Peekmessage...).
- under Linux, it's completely different: the exchange is done with a
TxxxPipeClientComm Class, using a kind of shared file in memory (using
TFileStream.Create(FFileName, ...)), via a call to the Linux API named
mkfifo (@lias:
fpmkFifo). So, the technique used under Linux is a regular named file used as a "named pipe".
Standard Internet-domain TCP or UDP sockets will work, subject to the rule that without special handling a program running on a unix-like OS can't listen/bind to ports below 1024. I'd probably avoid trying unix-domain sockets.
Maybe, the simplest could be the use of Standard Internet-domain TCP or UDP sockets, with the common networking address 127.0.0.1 (i didn't know what Unix domain socket was: i've just read on Wikipedia, what they are used for).
I've looked at other posts on this forum (Lazarus) and on the Wine forum: apparently, the real Linux technology for the IPC is
D-Bus: the Wine users have made requests for development so that Wine could call D-Bus. But, at the moment, the two OSes do not have the same address space, don't know which lock has already been put on a common file by the other OS, and afaik, even an interruption of the Linux system from Wine is currently impossible. So, no communication at all.
Another simple method could be the use of simple text files (the hard disk is common to both OSes, without even having to install Samba, there; no need to make a "net use" from Wine), more seen in a producer \ consumer blocks of [KBytes] information's paradigm, than in a server \ client IPC point of view, or even get help from the system timer (common to both OSes too).