有线网络连接:电脑192.169.5.55,板子192.169.5.241,监听端口都是8005
电脑做服务端:
使用exec 9>/dev/tcp/192.169.5.55/8005发起客户端连接,echo发送数据,
exec怎么接收和显示数据呢?? cat &9?
exec在脚本中执行,需要使用source命令,否则需要bash解析执行,后台执行也需要bash解析。
板子做服务端:
shell做TCP服务器,使用nc或者netcat命令:
#!/system/sbin/bash
status_start="Start"
status_stop="Stop"
# main (netcat) TCP create
cd /data
rm_file
rm -rf /dev/fd
ln -s /proc/self/fd /dev/fd
mkfifo fifo_in
#read line
while IFS= read -r line; do
#eg. line="[Connect][Start]"
type=$(echo $line | awk -F "[" '{print $2}' | awk -F "]" '{print $1}')
status=$(echo $line | awk -F "[" '{print $3}' | awk -F "]" '{print $1}')
case $type in
"TestConfig")
if [ $status == $status_start ];then
echo "[TestConfig][Respond][Success]"
fi
if [ $status == $status_stop ];then
echo "[TestConfig][Respond][STOP Success]"
fi
sleep 1
;;
"Heartbeat")
;;
"Reboot")
echo "[Reboot][Respond][Success]"
reboot
;;
*)
echo "error!["$line"]" >> $LOGPATH
;;
esac
done < <(nc -lp 8007 < fifo_in) > $fifo_name
rm -rf fifo_in
如遇提示:/system/opt/scripts/factest.sh: line 652: syntax error: unexpected redirection,需要把/bin/sh换成/system/sbin/bash。