RTC Forums
June 24, 2022, 10:50:13 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: IPC service and gui  (Read 3729 times)
chmichael
Newbie
*
Posts: 5


« on: November 20, 2009, 01:43:56 AM »

Dear Danijel,
  Do you have any easy example how to implement an IPC (Inter-process communication) between a service and GUI app without using TCP Lowlevel components ?

Thank you
Logged
D.Tkalcec (RTC)
Administrator
*****
Posts: 1873


« Reply #1 on: November 20, 2009, 11:28:59 AM »

There are a lot of examples on using RTC remote functions, which is the easiest way you can achieve communication between applications (inter-process, inside LAN or over the Internet).

To get the best performance when both applications are running on the same PC or when all your clients are inside LAN without a Firewall, simply set "useProxy" and "useWinHTTP" properties to FALSE. This way, you will be using TCP/IP over asynchronous WinSock with a thin HTTP layer, which is comparable in performance to using the TCP/IP components directly.

And if you need even faster performance than you could ever get with asynchronous TCP/IP communication, you can use the TRtcMessageClient and TRtcMessageServer components with third-party transports (for example, NexusDB transports) instead of using TRtcHttpClient and TRtcHttpServer components.

Best Regards,
Danijel Tkalcec
Logged
Kevin Powick
RTC Expired
*
Posts: 87


« Reply #2 on: November 24, 2009, 11:01:54 PM »

Danijel,

I think he's looking for something outside of TCP/IP, when both the client and the server process are on the same, physical machine.

Named pipes come to mind.  http://en.wikipedia.org/wiki/Named_pipe

Logged

Linux is only free if your time is worthless
D.Tkalcec (RTC)
Administrator
*****
Posts: 1873


« Reply #3 on: November 24, 2009, 11:06:45 PM »

Thank you. I think you are correct and named pipes are probably the fastest way one can get two applications to communicate with one another when both are running on the same PC. And ... if I am not mistaken, NexusDB components include a named pipes transport, which should work in combination with the RTC SDK when using the rtcMessageClient and rtcMessageServer components.

Best Regards,
Danijel Tkalcec
Logged
chmichael
Newbie
*
Posts: 5


« Reply #4 on: November 27, 2009, 08:48:18 AM »

Well, i was looking TCP/IP for LAN IPC. Smiley

Maybe Name Pipes are fast but TCP/IP is more reliable ?
Logged
D.Tkalcec (RTC)
Administrator
*****
Posts: 1873


« Reply #5 on: November 27, 2009, 09:09:44 AM »

For communication between PCs (inside LAN or over the Internet), I would recommend using HTTP/S (works over TCP/IP) because it is reliable and allows you to break the LAN barrier and easily access your Server over the Internet, should that be required.

And if you want to use a different transport based on each clients specific requirements, you can also use the TRtcDualDataServerLink component on the Server to embed more than one transport and make your server-side functionality accessible over more than one communications channel (for example use named pipes for local inter-process communication and HTTP/S for LAN and Internet clients). The most important thing here is to use the standard RTC SDK components, which are based on TRtcDataServer/TRtcDataClient descendant components and using HTTP/S instead of using the low-level TCP/IP or UDP stuff.

Best Regards,
Danijel Tkalcec
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.026 seconds with 17 queries.