Windows中Java和C之间的任何IPC机制-不需要套接字

Windows中Java和C之间的任何IPC机制-不需要套接字,java,c++,c,windows,ipc,Java,C++,C,Windows,Ipc,我的要求是在Windows上使用JSON字符串在C客户机和Java服务器之间进行IPC 刚刚意识到我不能从java在Windows中使用命名管道(\。\pipe\filename)。我不太喜欢使用任何基于网络的架构,因为它将变得更加复杂,以确保安全性和速度 请推荐您碰巧知道的任何共享内存/快速解决方案 提前感谢:)您可以在Windows上使用命名管道;答案和给出不同的解决方案 除此之外,通过使用llvm(在您的例子中是clang)和,您可以将数百种编程语言中的代码编译为llvm字节码,然后将其转

我的要求是在Windows上使用JSON字符串在C客户机和Java服务器之间进行IPC

刚刚意识到我不能从java在Windows中使用命名管道(\。\pipe\filename)。我不太喜欢使用任何基于网络的架构,因为它将变得更加复杂,以确保安全性和速度

请推荐您碰巧知道的任何共享内存/快速解决方案


提前感谢:)

您可以在Windows上使用命名管道;答案和给出不同的解决方案

除此之外,通过使用llvm(在您的例子中是clang)和,您可以将数百种编程语言中的代码编译为llvm字节码,然后将其转换为JVM字节码,此时您现有的Java代码可以从(编译和翻译的)代码中调用函数


最后但并非最不重要的一点是,为了避免做您可能不需要做的工作,您应该专注于使用清晰、可维护的代码解决您的问题,并将优化留给您,直到您确定需要完成为止。在这一点上,您的探查器将成为您测量瓶颈和验证您执行的优化的朋友。

您可以使用UDP或TCP进行IPC

如果您以后将程序移动到其他操作系统,它也是一个非常可移植的解决方案

使用TCP,很容易扩展系统:即:在不同的主机上运行程序。
由于UDP的不可靠特性,在不可靠的网络上使用它可能有点困难。

您是否考虑过创建一个本机类来管理IPC?如果您喜欢命名管道,这应该很容易做到。如果您想要速度,我很惊讶您使用JSon。这会比在环回上使用套接字更慢。你的问题基于错误的前提。使用套接字不会使确保安全性和速度变得更加复杂。套接字很可能是正确的解决方案。为什么不能使用命名管道?您是在同一台机器上连接还是在不同的机器上连接,管道的哪种模式失败?啊,是在同一台机器上。Windows live中的命名管道位于一个特殊的文件系统中,该文件系统只能由Win32 API使用,这使得我很难在一端使用java。如果我错了,请纠正我。