【问题标题】:Is it possible to communicate with WCF TCP service with app in java or python?是否可以使用 java 或 python 中的应用程序与 WCF TCP 服务进行通信?
【发布时间】:2012-07-13 09:07:00
【问题描述】:

我收到一个 WCF 服务进行通信,因此,我需要在 java 或 python 中创建一个客户端来获取该服务提供的信息,该服务是一个 WCF TCP 服务。有可能吗?

【问题讨论】:

  • WCF 是基于标准的 (SOAP) 所以是的。只是 Google Python SOAP 客户端。
  • @Blam - 没那么容易。 netTcpBinding 有一个“net”前缀,因为它旨在与自身进行互操作,并使用一些专有协议,而不仅仅是像 SOAP 这样的公共标准。
  • @ChrisDickson 好点

标签: java .net python wcf tcp


【解决方案1】:

我假设当您说服务“是 WCF TCP 服务”时,您的意思是它使用了 netTcpBinding(方案 net.tcp)。

除了 SOAP 等公共标准之外,此绑定还依赖于一些专有的 Microsoft 协议。这些提供消息帧,支持各种编码方案,以及在消息流上分层安全协议。这类似于 netNamedPipe 绑定,这些协议的更多细节在here on my blog 中解释。

您的问题的答案是“是的,有可能”,但坏消息是,为了这样做,您必须在您选择的客户端平台中实现所有专有的 Microsoft 协议。您几乎肯定会希望避免这样做,因为这需要大量工作(尽管可能有人已经为 Java 或 Python 编写了一个开源库)。

如果您找不到库,并且能够在您的客户端平台上运行任何风格的 .NET(或者如果在您的客户端和服务之间插入单独的 Windows 计算机作为代理是可行的) ) 我会考虑在 .NET 中创建一个适配器,以代理您对服务的访问。这样的东西可以为服务提供一个纯粹的基于标准的接口(例如 WS-*),在内部将调用转发给真实的服务,以使其能够从其他平台使用。

编辑:我以前不知道另一个答案提到并链接到的用于 Windows HPC 的 Java 互操作库。这似乎很有希望:开源和微软支持,为此目的可能更好。

【讨论】:

    【解决方案2】:

    net.tcp 绑定是专有的。这是一个site 在其他上下文中提到它。

    文章指向Github上发布的一个Java互操作库Interop Library Download Link

    希望这会有所帮助...我也很想知道答案,因为我恰好参与了业务的 Web 服务方面。

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 2018-11-21
      相关资源
      最近更新 更多