Next: , Up: The Machine-Interface   [Contents][Index]


16.1 MI overview

A client application can communicate with poke through the machine-interface:

+--------+       MI     +--------+
| client |------ O------|  poke  |
+--------+              +--------+

There are two ways in which the communication can be performed: through pipes and through TCP network connections.

When using the pipe operation mode, the client application runs poke as a sub process. Data is obtained from poke reading from its standard output, and data is fed to poke writing to its standard input:

+--------+        stdin +--------+
| client |------------->|  poke  |
+--------+              +--------+
    ^                       | stdout
    |                       |
    +-----------------------+

When using the TCP network operation mode the client uses a bidirectional socket to communicate with a running poke process. This has the advantage of allowing having poke and the client application running on different machines:

+--------+ socket    (----)__     socket +--------+
| client |<-------->( network )<-------->|  poke  |
+--------+           (-------)           +--------+