maximaとの通信方法、ソケットが既に使われているときの挙動
なんとmaximaはネットワーククライアントになる。サーバーじゃなくてクライアント!ここが既にハマリ所だが、使用されているソケットにクライアントとして接続しに行くと、次のように死ぬ。
bin > .\maxima.bat -s 4000
Connecting Maxima to server on port 4000[hiyama@TP-X220-HIYAMA C:\Installed\maxima-5.40.0\bin]
bin > .\maxima.bat -s 4010
Connecting Maxima to server on port 4010*** - handle_fault error2 ! address = 0x7aa5dd00 not in [0x61a94b88,0x61cc0000) !
SIGSEGV cannot be cured. Fault address = 0x7aa5dd00.
GC count: 0
Space collected by GC: 0 0
Run time: 0 2340015
Real time: 0 2350134
GC time: 0 0
Permanently allocated: 92960 bytes.
Currently in use: 9461644 bytes.
Free space: 151 bytes.
非存在ソケットなら、普通のエラー。
bin > .\maxima.bat -s 4000
Connecting Maxima to server on port 4000Unable to connect Maxima to port 4000.
Error: Winsock error 10061 (ECONNREFUSED): Connection refused
最初に、未使用ソケットを使用して、netcatでサーバーを動かしておく。
$ nc -l -p 4000
それから、maximaを当該ポートに接続する。と、サーバー側でコンソールからmaximaと対話ができる。サーバー側コンソールで、quit(); として接続を切断できる。