TclPipe

TclPipeはサーバ/クライアントシステムの構築を可能にします。

サーバとクライアント間のネットワーク通信はWindowsの名前付きパイプ機能を利用しています。
互いに相手側の受信を確認できる点(到達証明メカニズム)が有利です。
そして、最も大きな特長は、Tclスクリプトをやり取りできることです。

クライアントは、サーバにTclスクリプトとクライアント側の受信プロシージャを送信します。
サーバはクライアントから指示されたTclスクリプトを実行します。
そしてその実行結果をアーギュメントにして、クライアントから指定された受信プロシージャをリモート実行します。
このメカニズムによりサーバ/クライアントシステムがTclスクリプトだけで構築できるようになります。

クライアントはローカルマシンに登録されているアカウントでサーバにアクセスできます。
そしてサーバはクライアントのアクセス権によってリソースにアクセスしますので、WindowsNTのセキュリティ機能が働きます。

尚、オーバラップI/Oがサポートされていない段階のWindows95では使用できません。

サーバ起動
クライアント起動
サーバとの通信
サーバとの通信切断

サーバ起動

斜体は省略可能なアーギュメント。...は複数指定可能を示します。

pipe Server $ServerName

$ServerName
サーバ名(パイプ名)を指定

サーバはマルチクライアント対応

クライアント起動

pipe Client $MachineName $ServerName

$MachineName
サーバが起動されているマシン名を指定
$ServerName
サーバ名を指定

サーバとの接続に成功すると通信回線IDをリターン

サーバとの通信

pipe Send $ComID $ServerProc $ClientProc

$ComID
pipe Clientで取得した通信回線IDを指定
$ServerProc
サーバに実行させるTclプロシージャ名とそのアーギュメントを指定
$ClientProc
サーバからの返信データをアーギュメントにして実行するTclプロシージャ名を指定(省略可)

ServerProcにpipe Serverコマンドを与えると、別のサーバを立ち上げることができる(サーバのリモートコントロール)。

サーバとの通信切断

pipe Stop $ComID

$ComID
pipe Clientで取得した通信回線IDを指定

※通信回線を切断するが、サーバを停止するわけではない。再度pipe Clientコマンドで接続可能。
サーバとの通信回線が開くとスレッドが起動され常駐するので、これを停止したい場合に使用する。