When exchanging expressions with external programs, the Mathematica kernel uses the convention of wrapping the expressions inside packets that identify what role the expressions have or how they should be processed.
EvaluatePacket — an expression sent purely for evaluation
EnterTextPacket — a string to be entered like keyboard input
EnterExpressionPacket — an expression to be entered like keyboard input
MessagePacket — name of a Mathematica message
CallPacket — data for calling functions in an installable MathLink program