文档未说明返回的数据包的顺序
来自内核的MathLink
。很自然地认为(当时
发送头EnterExpressionPacket
的输入表达式并在标准模式下工作):
1)始终是下一个InputNamePacket
之前的最后一个数据包
ReturnExpressionPacket
2)可能始终只有一个ReturnExpressionPacket
和一个OutputNamePacket
一EnterExpressionPacket
ReturnExpressionPacket
3)OutputNamePacket
始终是MessagePacket
4)TextPacket
之后,下一个数据包始终为InputNamePacket
该消息的所有内容
5)标准模式下只有7种类型的返回数据包:OutputNamePacket
,ReturnExpressionPacket
,DisplayPacket
,DisplayEndPacket
,MessagePacket
,
TextPacket
,{{1}}。
这些陈述中哪一项属实?
答案 0 :(得分:4)
通常,您应该编写代码以不依赖来自内核的数据包的顺序。在您收到新的InputNamePacket之前,应将评估视为“活动”。 OutputNamePacket应该更新一些变量。 ReturnExpressionPacket应该使用该变量的当前输出名称。如果您收到未知数据包,请忽略它并转到下一个数据包。