我有一个用C#编写的程序,它从第三方服务器接收数据并将其处理成一系列整数(它们快速流式传输)。该程序是用C#编写的,因为第三方提供了处理数据的类,但只在C#中提供它们。我想采用这些整数并在Java程序中以流方式使用它们(因此,只要它们由C#程序进行流式处理和处理,我就想在Java程序中使用整数)。第二个程序是Java,因为另一个第三方只提供Java中的类(这是必需的)。所以我猜测该做什么是 -
或
有没有人对可能最不痛苦的方法有任何建议?
答案 0 :(得分:3)
听起来你想要某种形式的进程间通信机制。
因此,可以采用任何允许通信的方式:
在选项中,我建议使用命名管道,因为它们最容易掌握并且没有端口不可用等问题。
请参阅:How to open a Windows named pipe from Java?
并且:Using Named Pipes for IPC in C#
这篇文章:Using Named Pipes to communicate between C# and Java描述了使用两种环境中的管道的端到端方式。
答案 1 :(得分:0)
您可以将Java和C#程序合并为一个,并使用JNI桥接C#/ Java接口。 JNI基本上允许您从Java调用C#方法,反之亦然。我想这对于套接字来说同样难以编码,加上会有一些加速。
此处有更多信息:http://www.codeproject.com/Articles/245622/Using-the-Java-Native-Interface-in-Csharp
答案 2 :(得分:0)
过去我必须做类似的事情,以便将数据从Java系统导入Excel(通过RTD API),最后采用套接字协议方法。
如果你有一个非常简单的数据集(比如上面提到的整数流),这应该非常简单 - 只需查看Java Socket和ServerSocket类的文档,以及相应的C#Socket类。
如果您最终使用更复杂的API,包含多条消息等,您可能需要查看Google Protocol Buffers,因为有.Net和Java实现。