stdio channel

The stdio communication channel uses the program stdout for output and stdin for input. This is the classically used communication method for most of the contents management systems.

Thus, to read from the server data stream is to read from stdin and to write to the server data stream is to write to stdout. Note that it is a good practice to flush stdout after each write, since some buffering might happend and the written command would not be sent to the server.

Since the stdin and stdout streams of the program are managed by coco to communicate with the server, they cannot be used to read or write strings from or to the terminal. However, the stderr stream is free, and can be used to write strings to the terminal. If more freedom is needed, refer to the pipe communication channel.

In spectator mode only the stdin stream is captured by coco.

A simple usage example in python of the stdio communication channel is provided:

#!/usr/bin/env python3

from sys import stderr

if __name__ == "__main__":
    from_server = input().strip()
    print("to_server", flush=True)
    print("debug print", file=stderr)