This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  MathLink und externe Programm-Kommunikation /

Aufruf von Mathematica-UnterprozessenZweiweg-Kommunikation mit externen Programmen

2.12.8 Spezialthema: Kommunikation mit Mathematica-Benutzeroberflächen

Der Mathematica-Kern verwendet MathLink, um mit Mathematica-Benutzeroberflächen zu kommunizieren. Wenn Sie einen Mathematica-Kern aus einer Benutzeroberfläche heraus starten, wird der Kern deshalb durch eine MathLink-Verbindung zu dieser Benutzeroberfläche kontrolliert werden.

Der Link zur Benutzeroberfläche für einen bestimmten Kern

Die globale Variable $ParentLink spezifiziert die MathLink-Verbindung, die ein bestimmter Kern für die Ein- und Ausgabe verwenden wird.

Manchmal ist es nützlich, $ParentLink während einer Mathematica-Session zu ändern. Dadurch wird die Benutzeroberfläche, mit der der Kern verbunden ist, gewechselt.

Session A

Dies erzeugt einen Link auf Port 8000.

In[1]:= link = LinkCreate["8000"]

Out[1]=LinkObject[8000@frog.wolfram.com, 4, 4]

Session B

Dies stellt eine Verbindung zum Link her, der in Session A geöffnet wurde.

In[1]:= LinkConnect["8000"]

Out[1]=LinkObject[8000@frog.wolfram.com, 4, 4]

Dies teilt Session B mit, daß sie Session A als Benutzeroberfläche verwenden soll.

In[2]:= $ParentLink = %

Session A

Session A agiert nun als Benutzeroberfläche für Session B und erhält von dort die gesamte Ausgabe.

In[2]:= %Table[LinkRead[link], {4}]

Out[2]={ResumePacket[LinkObject[ParentLink, 1, 1]],
OutputNamePacket[Out[2]= ], ReturnTextPacket[
LinkObject[8000@frog.wolfram.com, 4, 4]],
InputNamePacket[In[3]:= ]}

Dies gibt Session B wieder frei.

In[3]:= LinkWrite[link, EnterTextPacket["$ParentLink=."]]

Die Standard-Notebook-Benutzeroberfläche für Mathematica kann ebenso wie der Mathematica-Kern mit einem gewissen Satz an MathLink-Paketen umgehen.

Soll die Mathematica-Benutzeroberfläche vom Kern kontrolliert werden, ist es normalerweise am besten, Funktionen wie NotebookWrite und FrontEndExecute einzusetzen. In einigen Fällen wird es dagegen vorteilhaft sein, wenn man Pakete direkt mit LinkWrite zur Benutzeroberfläche sendet.

Aufruf von Mathematica-UnterprozessenZweiweg-Kommunikation mit externen Programmen