Java-App und C++-App Kommunikation

  • Eine Java-Anwendung soll Daten an eine C++-Anwendung schicken. Wir suchen die schnellste Möglichkeit Daten zu übertragen, da das ganze in Echtzeit laufen soll. Konkret gehts darum MIDI-Steuerdaten über Java zu empfangen, die in Echtzeit (möglichst ohne Latenz!) in der C++-Anwendung visualisiert werden.

    Sind da Sockets schnell genug?

  • Wenn Netzwerksockets gemeint sind, ja sollten reichen, hängt aber auch von d. verbindung ob und obs am selben rechner läuft bzw. vom protokoll.

    mfg Schakal

    Einmal editiert, zuletzt von Schakal (8. August 2008 um 10:44)

  • c++-programm als kindprozess starten und dann stdin/stdout verwenden (Runtime.exec() und methoden des retournierten Process-objekts).

    kann leider nichts über die performance sagen. ein kleines testprojekt sollte das aber rasch klären.

    lg

  • hm, mein erster gedanke war ein shared memory. schnelles googlen hat mich zu einer seite gefuehrt die sich so beschreibt:
    "This tutorial illustrates how to write a class in Java that parses a datagraph to shared memory, and pass that data back and forth between a C++ application."

    mit java hab ich nichts am hut, also schimpf mich nicht, wenn die seite doch nicht das tut, was du machen willst.

    HTH

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • mit java hab ich nichts am hut, also schimpf mich nicht, wenn die seite doch nicht das tut, was du machen willst

    hab jetzt nur kurz drübergeschaut, aber ich glaube da wird mit dem shared memory eine station mehr eingeführt, als vermutlich nötig ist.

    soweit ich das verstanden habe, sollen die daten sofort verarbeitet werden, da ist ein socket oder piping von stdin/stdout wie beschrieben eigentlich ideal und (glaube ich) auch besser als jni. wär aber super wenn das jemand definitiv sagen könnte, habe da auch im web nichts gefunden.

    lg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!