start an external program and open a connection to it
Connecting to a subsidiary program via WSTP.
This starts a subsidiary Wolfram System process on the computer system used here.
Here is a packet representing the first input prompt from the subsidiary Wolfram System process.
This writes a packet representing text to enter in the subsidiary process.
Here is a packet representing the output prompt from the subsidiary process.
And here is the actual result from the computation.
The basic way that the various different objects involved in a Wolfram System session are kept organized is by using Wolfram Symbolic Transfer Protocol (WSTP) packets. A WSTP packet is simply an expression with a definite head that indicates its role or meaning.
Some additional packets generated in Wolfram System sessions.
If you enter input to the Wolfram Language using EnterTextPacket["input"], then the Wolfram Language will automatically generate a string version of your output and will respond with ReturnTextPacket["output"]. But if you instead enter input using EnterExpressionPacket[expr], then the Wolfram Language will respond with ReturnExpressionPacket[expr] and will not turn your output into a string.
an expression returned corresponding to an output line
Packets for representing input and output lines using expressions.
This enters an expression into the subsidiary Wolfram System session without evaluating it.
Here are the next 3 packets that come back from the subsidiary Wolfram System session.
InputNamePacket and OutputNamePacket packets are often convenient for making it possible to tell the current state of a subsidiary Wolfram System session. But you can suppress the generation of these packets by calling the subsidiary Wolfram System session with a string such as "math -mathlink -batchoutput".
The first packet to come back is a TextPacket representing text generated by the Print.
After that, the actual result of the Print is returned.
In most cases, it is reasonable to assume that sending an EvaluatePacket to the Wolfram System will simply cause the Wolfram System to do a computation and to return various other packets, ending with a ReturnPacket. However, if the computation involves a function like Input, then the Wolfram System will have to request additional input before it can proceed with the computation.
This sends a packet whose evaluation involves an Input function.
What comes back is an InputPacket, which indicates that further input is required.
There is nothing more to be read on the link at this point.