我需要一种从shell脚本触发netcat侦听器的方法,如果收到连接,我需要在同一本地侦听器机器上运行命令,而不会中断netcat进程/连接 它就像-e选项,但我需要在保持netcat连接运行的同时在本地运行命令
我真的不知道是否可以完成我的意思是在shell进程分叉后,netcat子进程可以与nc的输出进行交互,例如在netcat退出之前运行其他命令吗?
编辑:我认为通过检查初始send()消息的返回值来确定客户端C代码端是否更容易,以确定如果我们获得发送的消息长度,客户端是否连接成功
sret = send(sock, message, strlen(message), 0);
if (sret == strlen(message)) // We're Connected
do something
由于
答案 0 :(得分:1)
这将检查初始nc
进程是否已开始侦听,它将回显它收到的每一行输入,然后发回Received
响应:
rm -f input.txt
touch input.txt
tail -f input.txt | nc -l 5555 > output.txt &
if ! ps -p $! >/dev/null; then
echo "Netcat didn't start. Exiting..."
exit 1
fi
tail -f output.txt | while read -r LINE; do
echo "Received input: $LINE"
echo "Received" >> input.txt
done
看看你是否可以根据自己的需要进行调整。