web-dev-qa-db-ja.com

netcat接続を開いたままにするにはどうすればよいですか?

2つのファイル、client.shおよびserver.sh、必要なすべてのデータはサーバー上にあり、これはnetcatを使用してクライアントに送信されます。クライアントはこれらのデータを取得してエンドユーザーに表示するだけです。問題は、サーバーからクライアントへのダイアログ読み込み画面

server.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

client.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
4
henriquehbr

解決しました! -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.
5
henriquehbr