Difference between DBus and other Interprocess Communications method
A one to one ipc method has a large group of cooperating process can cause a dense mesh. But in case of a Dbus each process can connect to any number of process provided with a grant access. On a common single shared channel a user can connect with his own session or a new session without interfering the session of other user. This greatly increase the performance
Refer the link
https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/
This shows the comparison of the DBus performance against a custom IPC system. You get a better understanding of the performance of the Dbus
Quickly Inter-Process Communication with signal about changes
I found one solution http://www.qtcentre.org/wiki/index.php?title=SingleApplication
This solution have use shared memrory for data storage and have use on Windows named pipe, on Unix local domain socket for sending messges about changes immediatly.
Interprocess communication on windows
Tcl on windows has dde support built-in (see docs for the dde command) which could help if the other application supports this. Another option is the TWAPI (Tcl Windows API) extension, which has facilities for sending keyboard and mouse input to another application, see http://twapi.magicsplat.com/input.html .
dbus: difference between system bus and session bus
There is one system bus, and it runs as a system-level service. System-wide services are accessible on it.
There are zero or more session buses, one for each user session. They run as the user, and do not have elevated privileges. The user’s applications are accessible on each of them (to other applications within that user session).
Interprocess communication with C# on Linux and Windows
I would simply use Remoting.
Just because the other options suck:
WCF is very limited in Mono
DBus has its problems as Rolf says; not to mention the C# story with it is a bit clunky, i.e.: the best solution is using managed Dbus, which you can with NDesk.Dbus, but this library got renamed to dbus-sharp; but the Gnome world are moving to use GDbus, and there's no binding for it yet.
Socket, as proposed by Rolf, is too low level for my taste.
Inter-process communication between languages/operating systems
Well, you could definitely look at using "sockets".
Is there a high-level inter-process communications API that is implemented in both C++ and Javascript
I have found a solution that meets my needs. It isn't exactly perfect but I think it works well enough.
Some people suggested using HTTP and ajax. That turned out to be a useful idea and after some prototyping I think it solves my rather basic needs.
To be more specific I am using the Mongoose HTTP server embedded in my C++ application and I am using the jQuery ajax function to pull data from the server. The jQuery client polls the server continously for new data, not particularly efficient but I think it will do the job good enough for me.
Once my implementation is complete I'll write an article explaining how to do this in detail and then I'll update this answer.
Related Topics
Access Violation Writing Location 0Xcccccccc
How to Set the Background Image in Qt Stylesheet
Thread Safety of Matlab Engine API
What's the Difference Between Cout<<Cout and Cout<<&Cout in C++
How to Find an Object with Specific Field Values in a Std::Set
C++ Back End Call the Python Level Defined Callbacks with Swig Wrapper
Gdb - List Source of Current Function Without Typing Its Name
How to Assign Two Dimensional Array to **Pointer
Boost Serialization, Deserialization of Raw C Arrays
C++ Regular Expressions with Boost Regex
Good Refactoring Support for C++
Cancel Async_Read Due to Timeout
How to Set Background Color of Window After I Have Registered It
How to Reproduce Tcp Protocol 3-Way Handshake with Raw Sockets Correctly
Can This MACro Be Converted to a Function
How to Check for Inf (And | Or) Nan in a Double Variable
How to Write an C/C++ Application That Writes to a /Var/Log/Myapp Directory