[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00729] Re: FDclone 3.0 beta test has been started



 しらいです。

In Message-Id <20080107124327.4F7C540C616@yuka.unixusers.net>
        Takashi SHIRAI <shirai@unixusers.net>writes:
>  しらいです。

>  document 類も殆んど出来上がって後は release を待つばかりな
> ので、他のみなさんもβテストへの協力をお願いしますね。

 テスト用の確認項目は README.ja を読めばある程度判ると思い
ますが、[FDclone-users:00722] で具体例を挙げた URL ドライブ
機能以外は何をすればいいか判りにくいかも知れません。
 もう一つのネットワーク機能としてはリダイレクトのソケット対
応があるんですが、README.ja の説明だけだと応用例が思いつかな
い人もいるでしょう。

 似たような実装は bash や gawk の /dev/tcp にもあるのですが、
これは connect(2) の機能をデバイスファイルに割当てたもので、
FDclone では connect:// に相当します。
 telnet(3) に例えると、以下の三つはほぼ同等の働きをします。
telnet:
	$ telnet localhost 25
	EHLO localhost
bash:
	$ echo 'EHLO localhost' >/dev/tcp/localhost/25
FDclone:
	$ echo 'EHLO localhost' >connect://localhost:25

 FDclone ではこのような client 側機能の実装以外に server 側
機能も用意してあって、例えば上記のような 25/tcp への受信チャ
ネルを用意するとこんな感じになります。
	$ cat <accept://localhost:25
 これだと client からの入力を server 側の標準出力に吐出すだ
けのことになりますが、簡単なネットワーク通信実験は出来ると思
います。

 もう少し実用的な例を挙げてみると、例えば 9999 番ポート経由
で client(10.0.0.1) 側ファイル file1 を server(10.0.0.2) 側
ファイル file2 としてコピーしたい場合はこうなりますね。
server:
	$ cat <accept://10.0.0.1:9999 >file2
client:
	$ cat <file1 >connect://10.0.0.2:9999
 逆に server 側ファイル file2 を client 側ファイル file1 に
コピーする場合はこうです。
server:
	$ cat <file2 >accept://10.0.0.1:9999
client:
	$ cat <connect://10.0.0.2:9999 >file1


 この辺りのリダイレクト処理は判りにくいので、同じ機能を組込
みコマンドで実現した方が判り易いような気はするんですが、どう
いったものでしょうかね?
 単純なファイルコピーでも上記のように四通りの記述があるので、
コマンドを二つ用意して server/client 又は source/destination
の違いで別コマンドにしてしまうと判り易いかも。

 server/client の違いで分けるとこんな感じかな。-p を大文字
にすると source 側という仕様にしてみました。srvcopy の -h は
省略可でその場合は anyone can post 状態。
 リダイレクトよりは判り易くなっていると思います。
server(destination):
	$ srvcopy -h 10.0.0.1 -p 9999 file2
client(source):
	$ clicopy -h 10.0.0.2 -P 9999 file1
server(source):
	$ srvcopy -h 10.0.0.1 -P 9999 file2
client(destination):
	$ clicopy -h 10.0.0.2 -p 9999 file1
 もしくは、source/destination の違いで分けるとこんな感じ。
-h を大文字にするか省略すると server 側という仕様。省略時は
anyone can post 状態。
server(destination):
	$ netrecv -H 10.0.0.1 9999 file2
client(source):
	$ netsend -h 10.0.0.2 file1 9999
server(source):
	$ netsend -H 10.0.0.1 file2 9999
client(destination):
	$ netrecv -h 10.0.0.2 9999 file1

 後者の方が若干判り易いような気もします。どうでしょうかね?
希望が多ければどちらかの仕様で実装してみようかと思いますが。
んー、そんなの全然興味ないって人ばかりかなー。

                                               しらい たかし