在我们的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();
}