【问题标题】:create named-pipe in java在java中创建命名管道
【发布时间】:2014-03-13 12:04:42
【问题描述】:

我找到了这个Example

但我想反过来,我想用 java 创建一个命名管道,并且 C#(或任何其他)应用程序连接到这个管道。这可能吗?如果是,如何?

谢谢 弗洛里安

【问题讨论】:

  • 如果您阅读代码,您会发现它有点像写入文件(命名为管道子的文件)。您将 java 中的读取交换为写入,反之亦然,就是这样。
  • 是的,但是如果我在 java 中创建一个文件,如何在 .net 中使用 NamedPipeClientStream 访问它?
  • 对每个应用程序使用相同的文件名,并为每个调用打开和关闭文件;您不能使用 NamedPipeClientStream 而是使用 FileStream 类。请记住,如果一个应用程序正在写入,则另一个应用程序无法打开文件,反之亦然

标签: c# java ipc named-pipes


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 2011-02-13
  • 2014-12-21
  • 2018-10-03
  • 1970-01-01
相关资源
最近更新 更多