1
、私は、O/Iを行いますので、同様のプロセス、procA
、持っている:ホストBにnetcatとfifo経由で2つのリモートプロセスを結ぶには?ホストAで
#!/bin/bash
while sleep 1 ; do
# Consume input *if available*
if read -t 0.5 x; then # a timed-read
# If input is available, output it.
echo "HostA Input: $x"
fi
# Produce some output.
echo "HostA Output: $(date)"
done
を、私はprocB
は/その入力にタグ付けすることを唯一の違いは、非常に類似したプロセス、procB
を持っていますプレフィックス(プレフィックスHostA
の代わりに)を使用してください。
は今の標準入力 'procA
に標準出力をS'、私はsの標準入力 'procB
への標準出力' procA
を送信するためにnetcatをプログラム(/usr/bin/nc
)を使用したい、とprocB
。
[HostB]$ nc -l 4000
[HostA]$ nc HostB 4000
:ピア・ツー・ピアチャットの
標準的なnc
例を次のように起こると、このすべての私の期待は、ホストAの出力がホストBに表示されなければならないことである、とホストBの出力は、ホストAに表示されます...ずっと私は次のように、プロセス
procA
と
procB
の両方のホストのヒトを置き換えることによって
を上記の標準的な例を拡張しようとしたとき
しかし、それは働かなかった:
ホストB について:
$ mkfifo p
$ ./procB <p | nc -l 4000 >p
<WHY NO OUTPUT HERE??>
と、ホストA上:
$ mkfifo p
$ ./procA <p | nc HostB 4000 >p
<WHY NO OUTPUT HERE??>
注:
- 私は、ポート4000がホストBで開いていることを確認しました。
ホストBの場合:
$ mkfifo p
$ ./procB <p | nc -l 4000 >p
ホストA で:
$ ./procA | nc HostB 4000
HostB Output: Wed Jan 11 13:53:37 IST 2012
HostB Output: Wed Jan 11 13:53:39 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:02 IST 2012
HostB Output: Wed Jan 11 13:53:40 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:04 IST 2012
HostB Output: Wed Jan 11 13:53:41 IST 2012
HostB Input: HostA Output: Wed Jan 11 13:55:05 IST 2012
HostB Output: Wed Jan 11 13:53:42 IST 2012
^C
今、nc
にはnc
バイナリで有効になっていれば何とか使用することができるINSECUREオプション-e
が付属していますが、-e
オプションを利用できないと仮定した場合、どのようにしてnc
?基本的に、私はどこに間違っていますか?上記の場所に出力がないのはなぜですか?事前に多くの感謝。