1

我想在COBOLC#应用程序之间建立一个通信协议。我没有找到连接这两个应用程序的正确方法。唯一可能的方法是通过 COBOL 将数据写入文件并通过 C# 应用程序读取,反之亦然。

我可以使用套接字技术来创建这样的通信,因为文件方法的性能很差吗?或者还有其他在这两种语言之间传递数据的方法吗?

4

1 回答 1

1

我可以使用套接字技术来创建这样的通信 [...]?

当然!您只需要使一个套接字服务器和另一个客户端+创建+实现协议(如果它只是一个客户端+服务器并且您不需要安全通信,这很容易)。您可能已经在您的 COBOL 环境中有一个套接字选项,或者使用免费的外部库CBL_GC_SOCKET(适用于许多 COBOL 实现,只要它们可以调用 C/C++ 二进制文件)。

或者还有其他在这两种语言之间传递数据的方法吗?

众多(特别是如果它们在同一台机器上运行)。

  • 根据所使用的 COBOL 环境,您可能有一个直接的 .NET 程序集选项和CALL/invoke,或者可以编写一个层来执行此操作,在 C# 中运行转换为本机代码的 COBOL 代码。
  • 直接输入/输出通常是一种解决方案(取决于需求和环境,并非都具有双向管道选项)。
  • 与消息队列服务器交谈(可能性能不高)
  • 如果 COBOL 环境支持它:创建一个 REST 端点并将其用于通信;或者从 COBOL 到用 C# 实现的 REST 服务的另一种方式(来自 COBOL 的 REST 可能是提到的那些“最便携”的方式,但也是性能最差的方式)
  • ...

结论:没有什么阻碍COBOL与任何合理的“其他编程语言”“交流”,你主要要看你是COBOL和“其他编程语言”提供什么,你的目标是什么。

于 2020-04-17T21:17:18.047 回答