1

我想知道是否可以让 Java 客户端与使用 .NET 用 C# 编写的服务器进行通信。

在维基百科上它说:

"在客户端,对远程对象的任何请求都由 .NET Remoting 运行时在 Channel 对象上代理,这些对象封装了实际的传输模式,包括 TCP 流、HTTP 流和命名管道。因此,通过实例化适当的 Channel 对象,可以使 .NET Remoting 应用程序支持不同的通信协议,而无需重新编译应用程序。

这就是为什么我认为 Java 应用程序应该可以ServerIP:Port通过 TCP 通道连接和交换甚至复杂的对象。

问题是是否有一个库可以将接收到的数据转换回有效的 Java 对象?

或者还有其他更好的方法吗?

任何帮助都会很棒。谢谢!

斯特凡

4

2 回答 2

0

您不能直接将复杂的 Java 对象加载到 .Net 中,反之亦然,但您可以在客户端和服务器中拥有等效的对象,并利用 JSON(如 bas 的回答中所示)在您的通道中序列化和传输这些对象.

这意味着当一个对象从 A -> B 发送时,它会经过以下顺序:

  1. 从 A 中的托管对象序列化为 JSON
  2. 从 A -> B 通过传输通道发送 JSON
  3. 在 B 处接收 JSON 对象作为字符串
  4. 将对象反序列化为托管对象以供 B 使用

第 1 步和第 4 步是 NetwonSoft Json.Net 库之类的东西对您有很大帮助的地方。任何网络协议都可以通过网络传输 JSON 对象。

于 2013-07-30T14:31:55.697 回答
0

您可以使用 JSON 或 XML 格式发送和接收数据

C# 的 JSON:http: //james.newtonking.com/pages/json-net.aspx

Java 的 JSON:http: //json.org/java/

于 2013-07-30T14:25:45.373 回答