On our Linux system we use named pipes for interprocess communication (a producer and a consumer).

In order to test the consumer (Java) code, I would like to implement (in Java) a dummy producer which writes to a named pipe which is connected to the consumer.

Now the test should also work in the Windows development environment. Thus I would like to know how to create a named pipe in Windows from Java. In Linux I can use mkfifo (called using Runtime.exec() ), but how should I do this on Windows?

Relevant part in the link

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();

var server = new NamedPipeServer("MY_PIPE_NAME"); Greeter.BindService(server.ServiceBinder, new GreeterService()); server.Start(); var channel = new NamedPipeChannel(".", "MY_PIPE_NAME"); var client = new Greeter.GreeterClient(channel); 命名 管道 利用了微软网络提供者(   M   S   N   P)重定向器,通过一个网络,在各进程间建立通信。这样一来,应用程序便不必关心网络协议的细节.至于它用什么协议,完全看你的 WINDOWS 平台用什么协议。他是在 WINDOWS 网络平台之上采用重定向实现,比如可以重定向到TCP/IP,   NetBUEI,NETBIOS等等。具体实现细节由 WINDOWS 本身提供,无需你操心。优点是比 我正在尝试使用 命名 管道 Windows 上使用 命名 管道 提供C#应用程序和 Java 应用程序之间的通信,使用v01ver在此问题中描述的方法:How to open a Windows named pipe from Java ?我在 Java 方面遇到了一个问题,因为我有一个读者线程经常在 管道 上等待输入,当我尝试从我的主线程写入 管道 时,它会永远被卡住.final RandomAccessFile pipe;... 进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的匿名 管道 是用 打开 的文件描述符来标识的。如果要互相通信的几个进程没有从公共祖先那里继承文件描述符,它们怎么通信呢?内核提供一条通道不成问题,问题是如何标识这条通道才能使各进程都可以访问它?文件系统中的路径名是全局的,各进程都可以访问,因此可以用文件系统中的路径名来标识一个IPC通道。FIFO和UNIX Do... 说明:利用 管道 实现服务端与客户端之间的交互。效果等同于利用socket。 命名 管道 (NamedPipe)是一种简单的进程间通信(IPC)机制,是服务器进程和一个或多个客户进程之间通信的单向或双向 管道 。其本质是文件读写、内存共享。采用 命名 管道 完成进程通信的过程为:1.在服务器端调用CreateNamedPipe创建 命名 管道 之后,调用ConnectNamedPipe函数让服务器进程等待客户端进程连接到该... 我正在尝试使用 Java 创建 命名 管道 .我正在使用Linux.但是,我遇到了写入 管道 的问题.File fifo = fifoCreator.createFifoPipe("fifo");String[] command = new String[] {"cat", fifo.getAbsolutePath()};process = Runtime.getRuntime().exec(command);... There arenot only one way to fulfil the functions of communication between Java andPerl. Except for the socket, named pipe is also a possible solution. Actuallymy tutor has implemented the first versi 5 void main(int argc,char* argv[]) 6 { 7 LPCTSTR Message="the pipe's message from a cli... 前段时间写了几篇 C# 漫文,评论留言中有很多朋友多次提到 Span,周末抽空看了下,确实是一个非常????????的新结构,让我想到了当年的WCF,它统一了.NET下各种零散的分布式技术,包括:.NET Remoteing,WebService,NamedPipe,MSMQ,而这里的 Span 统一了 C# 进程中的三大块内存访问,包括:栈内存, 托管堆内存, 非托管堆内存,画个图如下: 接下来就和大家具体聊聊这三大块的内存统一访问。 二: 进程中的三大块内存解析 4.调用FlushFileBuffers在断开连接之前允许客户端读取 管道 内容。然后断开客户端连接FlushFileBuffers(hNamedPipe);DisconnectNamedPipe(hNamedPipe);5.关闭 管道 CloseHandle(hNamedPipe);完整代码:CppNamedPipeServer.cpp#pragma region Includes#include #i...