如何从 Windows 上的 C# 桌面程序远程调用 Linux 服务器上的 MATLAB 软件?

How do I remote call MATLAB software on a Linux server from a C# desktop program on Windows?

我在 windows 上编写了一个 C# 桌面程序,在 linux 上编写了一些 matlab 程序 server.How 我可以使用 C# 程序实现 — select 本地数据然后将数据传输到matlab programs.After 在linux 服务器上处理的数据,结果将发送到C# 桌面程序? 回答 请求

我会先尝试以下 'recipe'。首先确保您可以通过 ssh 访问服务器。

  1. 将数据从 C# 保存到 Matlab 友好格式的文件中,我推荐二进制文件,但文本文件也可以。
  2. 将数据复制到服务器,使用像 WinSCP 这样的 scp 客户端。这可以从 C# 使用 Process class 发送命令行执行命令来完成。
  3. 使用一些 SSH 库从 C# 向您的 Matlab 程序发送远程调用(我不熟悉 C#,但我相信这是可能的)。您可能会发现 Matlab 启动选项 -r 很有用,可以启动 Matlab 并调用脚本。
  4. 确保 Matlab 代码将结果保存到磁盘。
  5. 要将结果返回到您的本地计算机,您可以使用 scp 再次从远程服务器复制它,最简单的方法是尝试在循环中复制它,直到复制成功,在尝试之间有一些暂停,以及时间的上限(如果服务器端出现问题,你不想永远等待)。如果你想让它更少 'dirty',你可以在远程和本地机器之间建立一个 tcp 客户端-服务器连接,并让远程机器在文件准备好复制时发送消息。如果数据不是太多,您甚至可以通过 tcp 获取数据,而不是保存到文件。