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 程序的开头。