このコマンドを使用して、ポートをリッスンし、データをファイルにダンプします。
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
最初のリクエストは完璧に機能し、log.txtにダンプされますが、最初のリクエストの後、ncはリッスンしなくなり、停止しました。
誰かが私に間違ったことを教えてもらえますか?
これをバックグラウンドで継続的に実行し、このポートからの要求をlog.txtファイルに記録するだけです...
ncにオプションを追加する必要があります。オプションは、実行しているncのバージョンによって異なります。たとえば、私の場合(Kubuntu)、オプションは-kです。マニュアルページから、
-k現在の接続が完了した後、ncに別の接続の待機を強制します。 -lオプションなしでこのオプションを使用すると、エラーになります。
私は-kが機能することを約束することはできません(もちろん、Ubuntuでない場合)、同様の何かを検索する必要があります。たとえば、私のDebianでは-kは存在しませんが、次のようになります。
-q秒後EOF on stdin、指定された秒数だけ待機してから終了します。秒数が負の場合、永久に待機します
編集:
1つのPCで動作することを確認するには:
nc -k -l 0.0.0.0 10000 > out.txt
2番目のPCの場合:
echo Hello | nc IP_address_of_first_pc 10000
上記のコマンドを数回発行してから、pc1でncコマンドを中断し、out.txtの行数を確認します。