![在计算机之间发送和接收简单信号?](https://linux22.com/image/142147/%E5%9C%A8%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6%E7%AE%80%E5%8D%95%E4%BF%A1%E5%8F%B7%EF%BC%9F.png)
我有一个运行标准 Pi 发行版的 RaspberryPi,以及一台在同一本地网络中运行 Linux 16.04 且具有固定 IP 地址的计算机。 Pi 用于通过发送 LAN 唤醒包来唤醒计算机,然后通过 SSH 隧道连接到计算机。
是否有一种简单的方法可以让计算机向 Pi 发送消息,然后 Pi 将其解释为计算机已成功启动并且可以访问?
我已经建立了一个系统,其中 Pi 不断 ping 计算机直到得到响应,但我特别想让计算机向 Pi 发送消息,而不是让 Pi 在计算机上进行检查。
答案1
使用nc
-最简单的方法。
在计算机上(假设它是 *nix 系统):( echo "computer is up" | nc 192.168.0.123 6677 ) &
放入/etc/rc.local
.生成(...) &
后台 shell 以防止 rc.local 脚本在计算机启动时阻止其他内容的执行。假设 192.68.0.123 是您的 Pi 的 IP 地址,与计算机位于同一网络上。
在 Pi 上,让一个进程在端口 6677 上侦听,无论nc -l 6677
您使用什么命令来发送 LAN 唤醒信号。默认情况下,nc
一旦发送方关闭连接就会终止(这应该在发送“computer is up”字符串的所有字节之后发生)。所以你可以做类似的事情
netreply=$( nc -l 6677)
case $netreply in
"computer is up") echo "All good" ;;
*) echo some boo-boo happened ;;
esac