【发布时间】:2010-09-23 22:59:36
【问题描述】:
我必须在没有任何代理或服务器的情况下获得两个不同的客户端应用程序对话。 在 Java 和 .NET 两个进程之间进行 IPC 的最佳方法是什么?
它必须能够在多用户终端服务器上工作,所以请不要使用套接字。 我希望它是轻量级和简单的,即插即用的,所以请不要使用 RMI/WS。
我现在正在考虑使用 JNI 来访问 Mutex 和命名管道,我的方向是否正确?
欢迎任何想法!
谢谢丹尼斯
【问题讨论】:
我必须在没有任何代理或服务器的情况下获得两个不同的客户端应用程序对话。 在 Java 和 .NET 两个进程之间进行 IPC 的最佳方法是什么?
它必须能够在多用户终端服务器上工作,所以请不要使用套接字。 我希望它是轻量级和简单的,即插即用的,所以请不要使用 RMI/WS。
我现在正在考虑使用 JNI 来访问 Mutex 和命名管道,我的方向是否正确?
欢迎任何想法!
谢谢丹尼斯
【问题讨论】:
您可以通过 JNI(Java) 和 PInvoke(C#) 访问 WinAPI。 使用以下 WinAPI 函数: 创建事件 设置事件 等待单个对象 创建互斥体 释放互斥锁 CreateFileMapping(用于共享内存) MapViewOfFile UnmapViewOfFile
【讨论】:
我会使用protobuf。
协议缓冲区是一种以高效且可扩展的格式对结构化数据进行编码的方法。 Google 几乎所有内部 RPC 协议和文件格式都使用协议缓冲区。
【讨论】:
我是jni4net 的作者,它是 JVM 和 CLR 之间的开源进程内桥梁。它建立在 JNI 和 PInvoke 之上。无需 C/C++ 代码。希望对你有帮助。
【讨论】: