我有两个文件,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
可能不存在某些标志,包名称可能会根据您的发行版而有所不同