我知道Java可以作为读/写命名管道的客户端,但我需要另一个充当服务器的程序。
在这种情况下,我正在与之通信的程序必须充当客户端,而不是服务器。 Java是否可以在服务器模式下对命名管道进行操作?
编辑:在命名管道(Windows)中有客户端和服务器模式。必须首先建立服务器,然后客户端才能连接到该服务器。我有一个遗留应用程序充当“客户端”,这意味着它连接到它假设的已经建立的命名管道。 我有一个新的java应用程序,我希望使用命名管道与这个遗留应用程序进行通信。我只找到了如何使用Java命名管道连接到以前建立的命名管道的示例。
答案 0 :(得分:1)
在linux和mac上,你总是可以让java一次一行地向控制台发出一行信息。例如:
在一个终端窗口中:
mkfifo myPipe
java -jar mydataserver.jar > mkfifo
在第二个终端窗口中执行以下操作:
while read line; do echo "What has been passed through the pipe is \
${line}"; done<myPipe
答案 1 :(得分:1)
是的,您可以使用JNA库https://github.com/java-native-access/jna
在Java服务器上创建命名管道JNA包装器的API与Win32相同,因此您将能够在Windows上使用命名管道的所有功能和强大功能。