![超时后终止命令(netcat)的便携式方法](https://linux22.com/image/112021/%E8%B6%85%E6%97%B6%E5%90%8E%E7%BB%88%E6%AD%A2%E5%91%BD%E4%BB%A4%EF%BC%88netcat%EF%BC%89%E7%9A%84%E4%BE%BF%E6%90%BA%E5%BC%8F%E6%96%B9%E6%B3%95.png)
我有一个使用netcat
/nc
作为监听输入的服务的解决方案,但该服务永远不会向客户端返回任何输入。有点像这样:
server$ nc -l 12345
进而:
client$ echo message | nc server 12345
诀窍在于,因为服务器永远不会向客户端发送任何内容(包括没有 EOF),本质上是因为它不知道客户端何时完成,所以客户端netcat
永远不会终止。
一种简单的解决方案是让客户端使用 选项-q <secs>
,netcat
但并非所有实现(例如 FreeBSD 和 Mac OSX)都netcat
包含该-q
选项。
这里的聪明才智还有其他解决方法吗?