windows 上的 ncat:-e 选项转发输入但不转发输出
ncat on windows: -e option forwards input but does not forward output
我从 ncat
(在 Windows 10)开始
ncat -vvlp 1234 -e code.exe
然后将 ncat
的第二个实例连接到第一个实例
(ncat 127.0.0.1 1234
)。
code.exe
是我写的一个C程序,可以通过stdin控制。
我通过第二个 ncat
发送的所有内容都会转发到 code.exe
的标准输入。我知道这一点,因为我可以看到 code.exe
在发送命令后创建了一个文件夹。但是在 code.exe
自行关闭之前,输出不会发回。
为什么会这样——我该如何解决?
好的,我找到了解决问题的方法。我使用
禁用了标准输出缓冲
setbuf(stdout, NULL);
在我的 C 程序的开头。
我从 ncat
(在 Windows 10)开始
ncat -vvlp 1234 -e code.exe
然后将 ncat
的第二个实例连接到第一个实例
(ncat 127.0.0.1 1234
)。
code.exe
是我写的一个C程序,可以通过stdin控制。
我通过第二个 ncat
发送的所有内容都会转发到 code.exe
的标准输入。我知道这一点,因为我可以看到 code.exe
在发送命令后创建了一个文件夹。但是在 code.exe
自行关闭之前,输出不会发回。
为什么会这样——我该如何解决?
好的,我找到了解决问题的方法。我使用
禁用了标准输出缓冲setbuf(stdout, NULL);
在我的 C 程序的开头。