두 개의 파일이 있고 필요한 모든 데이터가 서버에 있으며 다음 명령을 사용하여 클라이언트에 보냅니다 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