Questions tagged [ipc]

IPC stands for Inter-process Communication and represents a set of methods for exchanging data and messages between threads and processes.

In computing, Inter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for:

  • message passing
  • synchronization
  • shared memory, and
  • remote procedure calls (RPC).

The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.

There are several reasons for providing an environment that allows process cooperation:

  • Information sharing
  • Speedup
  • Modularity
  • Convenience
  • Privilege separation

IPC may also be referred to as inter-thread communication and inter-application communication.

The combination of IPC with the address space concept is the foundation for address space independence/isolation.

4538 questions
23
votes
2 answers

How can I communicate between running python code and nodejs

I'd like to have some python code running and communicating with a nodejs express server. So far, I can get my nodejs server to call python functions via one of two mechanisms, either to spawn a python task or to have it talk to a zerorpc python…
Dribbler
  • 4,343
  • 10
  • 33
  • 53
23
votes
6 answers

How to integrate Electron ipcRenderer into Angular 2 app based on TypeScript?

I want to use ipcMain / ipcRenderer on my project to communicate from Angular to Electron and back. The Electron side is pretty clear: const electron = require('electron'), ipcMain = electron.ipcMain, ; ipcMain.on('asynchronous-message',…
Sommereder
  • 904
  • 4
  • 10
  • 32
23
votes
3 answers

Is it better to use TThread's "Synchronize" or use Window Messages for IPC between main and child thread?

I have a rather simple multi-threaded VCL gui application written with Delphi 2007. I do some processing in multiple child threads (up to 16 concurrent) that need to update a grid control on my main form (simply posting strings to a grid). None of…
Mick
  • 13,248
  • 9
  • 69
  • 119
23
votes
1 answer

How to send larger than 4k queries from SQL buffer to sql-mysql buffer in Emacs?

I've frequently run into an annoyance in Emacs's sql-mysql mode, and I'm wondering if anyone has a solution or better workaround. Anytime I try to send a query from an sql-mode buffer to an active SQL process buffer, that query cannot be larger than…
Ryan M
  • 688
  • 6
  • 12
22
votes
3 answers

What is an Android Binder "Transaction?"

I'm getting an TransactionTooLargeException when sending messages between two Android processes running from a single APK. Each message only contains small amounts of data, much smaller than the 1 mb total (as specified in the docs). I created a…
Jason
  • 13,563
  • 15
  • 74
  • 125
22
votes
3 answers

Electron GUI with C# backend

Use case I've got an existing project developed in C# using WinForms with custom controls for the GUI. We are amazed by the approach to write GUIs using HTML/CSS/JS and we are looking for the best way to write a GUI for our desktop application using…
kentor
  • 16,553
  • 20
  • 86
  • 144
22
votes
1 answer

WHY / WHEN using rather DDS instead of ZeroMQ?

I read the followings: DDS vs AMQP vs ZeroMQ http://mnb.ociweb.com/mnb/MiddlewareNewsBrief-201004.html And it seems that there is no benfit using DDS instead of zmq: the latency of zmq is better. It seem to me that the API of ZMQ is cleared and…
user3668129
  • 4,318
  • 6
  • 45
  • 87
22
votes
5 answers

Shared memory between 2 processes (applications)

I can't find any useful answer for this question, although it has been asked in a different way several times. I want to share a memory between two processes (two different applications), so that one of them can write to that memory and the other…
Tea Bee
  • 401
  • 2
  • 8
  • 18
22
votes
2 answers

Sockets vs named pipes for local IPC on Windows?

Are there any reasons for favoring named pipes over sockets for local IPC (both using win-api), effectiveness-wize, resource-wize or otherwise, since both behave very much alike (and likely to be abstracted by a similiar interface anyway), in an…
sold
  • 2,041
  • 5
  • 25
  • 32
22
votes
2 answers

c++11 interprocess atomics and mutexes

I have a Linux program which spawns several processes (fork) and communicates through POSIX Shared Memory. I'd like to have each process allocate an id (0-255). My intention is to place a bitvector in the shared memory region (initialized to zero)…
dschatz
  • 1,188
  • 2
  • 13
  • 25
21
votes
6 answers

Fast Cross Platform Inter Process Communication in C++

I'm looking for a way to get two programs to efficiently transmit a large amount of data to each other, which needs to work on Linux and Windows, in C++. The context here is a P2P network program that acts as a node on the network and runs…
Stephen Cross
  • 1,003
  • 1
  • 8
  • 19
21
votes
4 answers

What are the differences between pipes in Windows and Linux?

What are the differences between pipes in Windows and Linux?
Brian R. Bondy
  • 339,232
  • 124
  • 596
  • 636
20
votes
6 answers

Reading from a text field in another application's window

Is there a way for a Windows application to access another applications data, more specifically a text input field in the GUI, and grab the text there for processing in our own application? If it is possible, is there a way to "shield" your…
Tuminoid
  • 9,445
  • 7
  • 36
  • 51
20
votes
2 answers

Pipe vs msg queue

What is the difference between message queues and a pipe in Linux?
mint9
  • 195
  • 1
  • 2
  • 4
20
votes
3 answers

Use WM_COPYDATA to send data between processes

I wish to send text between processes. I have found lots of examples of this but none that I can get working. Here is what I have so far: for the sending part: COPYDATASTRUCT CDS; CDS.dwData = 1; CDS.cbData = 8; CDS.lpData = NULL; SendMessage(hwnd,…
Charles Gargent
  • 1,797
  • 2
  • 13
  • 19