2つのファイルがあり、必要なすべてのデータがサーバー上にあり、次のコマンドを使用してクライアントに送信しますclient.sh
。server.sh
インターネット猫。クライアントは単にこのデータをインポートしてエンドユーザーに表示します。問題は、サーバーからクライアントへのダイアログのロード画面を表示しようとするときです。
サーバー.sh
# CLIENT PORT: 8765
# SERVER PORT: 5678
while :
do
touch registered_users data
nc -vv -l -p 5678 > data
case `cat data` in
"SPLASH_SCREEN")
for ((i=0;i<100;i++))
do
echo $i
done | dialog --title 'Loading...' --gauge 'Welcome!' 8 40 0 > /dev/tcp/127.0.0.1/8765
;;
esac
done
クライアント.sh
# CLIENT PORT: 8765
# SERVER PORT: 5678
echo "SPLASH_SCREEN" > /dev/tcp/127.0.0.1/5678
while :
do
nc -l -p 8765 > server_response
cat server_response
done
答え1
解決しました! -kオプションを使用してください
-k Forces nc to stay listening for another connection after its current
connection is completed. It is an error to use this option without the
-l option.
編集する:この回答では、機能セットが縮小されたバージョンの一部を使用して
openbsd-netcat
いると仮定しているため、一部のフラグが存在しない可能性があり、パッケージ名はディストリビューションによって異なる場合があります。gnu-netcat
-k