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コマンドで接続可能。
サーバとの通信回線が開くとスレッドが起動され常駐するので、これを停止したい場合に使用する。