在我们的Linux系统上,我们使用命名管道进行进程间通信(生产者和使用者)。

为了测试使用者(Java)代码,我想实现(在Java中)虚拟生产者,该生产者写入连接到使用者的命名管道。

现在,该测试也应该在Windows开发环境中工作。因此,我想知道如何在Windows中从Java创建命名管道。在Linux中,我可以使用mkfifo(使用Runtime.exec()调用),但是在Windows上应该如何做呢?

最佳答案

Use Named Pipes to Communicate Between Java and .Net Processes

链接中的相关部分

try {
  // Connect to the pipe
  RandomAccessFile pipe = new RandomAccessFile("\\\\.\\pipe\\testpipe", "rw");
  String echoText = "Hello word\n";
  // write to pipe
  pipe.write ( echoText.getBytes() );
  // read response
  String echoResponse = pipe.readLine();
  System.out.println("Response: " + echoResponse );
  pipe.close();
} catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}

10-07 16:19
查看更多