前: Transaction Queues, 上: Processes
Emacs Lispプログラムは、同一マシンや別のマシン上の他のプロセスに対して
TCPネットワーク接続を開くことができます。
ネットワーク接続は、サブプロセスと同様にLispが扱い、
プロセスオブジェクトとして表現されます。
しかし、通信相手のプロセスはEmacsプロセスの子プロセスではありませんから、
キルしたりシグナルを送ることはできません。
データの送受信のみが可能です。
delete-process
は接続を閉じますが、
もう一方の端のプロセスをキルしません。
そのプロセスは、接続が閉じた場合の動作を判断する必要があります。
ネットワーク接続を表すプロセスオブジェクトと
サブプロセスを表すプロセスオブジェクトとは、
関数process-status
を使って区別できます。
この関数は、ネットワーク接続に対しては
open
かclosed
をつねに返し、
本当のサブプロセスに対してはこれらのいずれの値もけっして返しません。
See Process Information。
この関数は、ホストのサーバーに対するTCP接続を開く。 接続を表すプロセスオブジェクトを返す。
引数nameは、プロセスオブジェクトに付ける名前を指定する。 必要に応じて一意にするために修正される。
引数buffer-or-nameは、接続に対応付けるバッファである。 出力を扱うフィルタ関数を指定しない限り、 接続からの出力はそのバッファに挿入される。 buffer-or-nameが
nil
であると、 接続にはバッファを対応付けないことを意味する。引数hostとserviceは、接続先を指定する。 hostはホスト名(文字列)であり、 serviceは定義済みのネットワークサービス(文字列)か ポート番号(整数)である。