在java中创建命名管道
Posted
技术标签:
【中文标题】在java中创建命名管道【英文标题】:create named-pipe in java 【发布时间】:2014-03-13 12:04:42 【问题描述】:我找到了这个Example
但我想反过来,我想用 java 创建一个命名管道,并且 C#(或任何其他)应用程序连接到这个管道。这可能吗?如果是,如何?
谢谢 弗洛里安
【问题讨论】:
如果您阅读代码,您会发现它有点像写入文件(命名为管道子的文件)。您将 java 中的读取交换为写入,反之亦然,就是这样。 是的,但是如果我在 java 中创建一个文件,如何在 .net 中使用 NamedPipeClientStream 访问它? 对每个应用程序使用相同的文件名,并为每个调用打开和关闭文件;您不能使用 NamedPipeClientStream 而是使用 FileStream 类。请记住,如果一个应用程序正在写入,则另一个应用程序无法打开文件,反之亦然 【参考方案1】:在 java 中创建命名管道是依赖于操作系统的,你需要使用命令 Runtime.getRuntime().exec 来创建它:你不能像在 .net 中那样做;这是一个关于如何在 unix http://code.google.com/p/jdds/source/browse/trunk/JDDS/src/rtjdds/rtps/transport/NamedPipe.java?spec=svn7&r=7 中执行此操作的示例。
您可以通过其他方式在 .net 应用程序中创建管道,然后在您提供的示例中交换代码。
【讨论】:
谢谢!问题是这应该在 unix 和 windows 上运行,等等 unix 我不会有任何 .net 应用程序 你不能使用套接字吗?操作系统更灵活。 上面提到的源代码链接(用于通过 exec() 调用创建 Linux 管道)现已更改:请参阅 github.com/sioutisc/jdds/blob/master/JDDS/src/rtjdds/rtps/…。以上是关于在java中创建命名管道的主要内容,如果未能解决你的问题,请参考以下文章