在C程序中,假设我正在运行子进程以ssh进入IMAP服务器:
ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null
然后我可以使用该进程进出管道。现在我想要curl连接到SSH隧道(为了使用它的高级函数与IMAP服务器通信),但curl只接受network socket,而不是一对管道。那么如何将我的管道传递到插座呢?
我理想地寻找一种不仅适用于POSIX而且适用于Windows的解决方案。
答案 0 :(得分:0)
试试这个:
mkfifo ~/ssh_in
mkfifo ~/ssh_out
ssh -q -C user@example.com /usr/bin/imapd ./Maildir < ~/ssh_in > ~/ssh_out 2> /dev/null
nc -l 143 < ~/ssh_out | tee ~/ssh_in
现在您的 curl 应该可以与 localhost:143
进行对话顺便说一下,你没有&#34; SSH隧道。&#34;
不幸的是,似乎没有使用 Cygwin FIFO 。