我需要让用户能够netcat
在连接建立时通过网络(使用)发送/接收消息(在这种情况下,用户正在nc
用作客户端)。问题是我需要在用户开始交互之前发送一条线。我的第一次尝试是:
echo 'my first line' | nc server port
这种方法的问题是在完成执行时nc
关闭连接echo
,因此用户无法通过 stdin 发送命令,因为 shell 已返回给他(并且还没有收到来自服务器的答案,因为它延迟了几秒钟才能启动回答,并且在nc
关闭连接时,用户永远不会收到答案)。
我还尝试了分组命令:
{ echo 'my first line'; cat -; } | nc server port
它几乎按照我需要的方式工作,但如果服务器关闭连接,它会等到我<ENTER>
再次按下给我外壳。当服务器关闭连接时,我需要取回 shell(在这种情况下,客户端 - 我的nc
命令 -永远不会关闭连接,除非我按 Ctrl+C)。
我也尝试了命名管道,但没有成功。
你有什么建议吗?
注意:我使用的是 openbsd-netcat。