2017-03-27 3 views
1

Ich code ein C# Desktop-Programm auf Windows und einige Matlab-Programme auf einem Linux-Server.Wie könnte ich erreichen - wählen Sie lokale Daten mit dem Programm C# und dann übertragen Sie die Daten zu den Matlab-Programmen.Nach den Daten auf dem Linux-Server verarbeitet, Die Ergebnisse werden an das C# Desktop-Programm gesendet. Antwort AnfrageWie kann ich die MATLAB-Software auf einem Linux-Server von einem C# -Desktopprogramm unter Windows remote aufrufen?

Antwort

1

Ich würde beginnen, indem Sie das folgende 'Rezept' versuchen. Stellen Sie zuerst sicher, dass Sie ssh Zugriff auf den Server haben.

  1. Speichern Sie Ihre Daten von C# in eine Datei in einem Matlab-freundlichen Format, ich empfehle Binär, aber Textdatei ist auch in Ordnung.
  2. Kopieren Sie die Daten mit einigen scp-Client wie WinSCP auf den Server. Dies könnte von C# aus mit der Klasse Process erfolgen, um den Befehl zur Befehlszeilenausführung zu senden.
  3. Senden Sie einen Remote-Aufruf an Ihr Matlab-Programm, von C# mit einigen SSH-Bibliothek (ich bin nicht vertraut mit C#, aber ich bin mir sicher, dass es möglich ist). Sie könnten die Matlab-Startoption -r nützlich finden, um Matlab zu starten und ein Skript aufzurufen.
  4. Stellen Sie sicher, dass der Matlab-Code die Ergebnisse auf dem Datenträger speichert.
  5. Um die Ergebnisse zurück auf Ihren lokalen Rechner zu bringen, können Sie sie erneut vom Remote-Server mit scp kopieren. Am einfachsten ist es, sie innerhalb einer Schleife zu kopieren, bis das Kopieren erfolgreich ist. und eine obere Zeitgrenze (für den Fall, dass auf der Serverseite etwas schief geht, möchten Sie nicht ewig warten). Wenn Sie es weniger "schmutzig" machen möchten, können Sie eine TCP-Client-Server-Verbindung zwischen dem Remote-Computer und dem lokalen Computer herstellen und der Remote-Computer eine Nachricht senden, sobald die Datei zum Kopieren bereit ist. Sie könnten die Daten sogar über tcp erhalten, anstatt in Datei zu speichern, wenn es nicht zu viele Daten sind.
+0

Vielen Dank! Ich habe das Problem gelöst, bevor ich deine Antwort gesehen habe. Aber deine Antwort ist sehr ähnlich mit meiner Lösung. Es beweist, dass ich recht habe. –

Verwandte Themen