ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
538
538
EMPFEHLEN
-
... ich habe da mal eine Info für dich
Es geht um Kommunikation zwischen Programmen im Linux (Unix)
Umfeld - oder wie können sich zwei Programme "unterhalten"
Ich komme in meinem aktuellen Projekt an ein Punkt wo sich mehrere Programme untereinander austauschen müssen. Da einige Teile von meinem Projekt recht Hardwarenah sind muss ich Java und C Programme kombinieren.
Da das JNI Interface eine Strafe dafür ist, das ich in meiner Kindheit keinen Spinat gegessen habe
würde ich gern das Teil verbannen.
- mit andren Worten ich bekomme es nicht "gebacken"
- also schreibe ich mehrere Programme in C / Java die sich untereinander austauschen müssen.
Jetzt die Frage welche Möglichkeiten gibt es da und wo sollte ich mich mehr einlesen?
A) Sockets - sieht einfach aus und wird von jeder Prorammiersprache unterstützt
was mich stört ist das das ganze immer übers Netz geht - irgendwie dumm wenn die Programme die Daten austauschen wollen auf dem gleichen Rechner laufen
B) IPC mit Pipes - (noch kein Plan
sieht aber so aus als würde sowas auch in Java geben.
C) Files: der eine Schreibt rein - der andre liest raus - ich sachmal naja *g*
und welche Möglichkeiten gibt es sonst noch ?
Was benutzt Ihr für den Austausch von Infos/Daten
-
02.09.04 14:03 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Kein Problem dank des sogenannten Loopback Interfaces... das ist ein implizites Netzwerk indem der Lokale Rechner der einzige Teilnehmer ist.A) Sockets - sieht einfach aus und wird von jeder Prorammiersprache unterstützt
was mich stört ist das das ganze immer übers Netz geht - irgendwie dumm wenn die Programme die Daten austauschen wollen auf dem gleichen Rechner laufen
Gruß Tom
-
03.09.04 12:39 #3
Welche Performance sollte das Programm aufweisen Willst du wirlich effizienten Code würde ich nicht unbedingt zu Socket raten - erst recht nicht zu Files
Klar, JNI brauchst du erstmal etwas Einarbeitungszeit, doch dafür schnelle(n) Code/Kommunikation, wobei nicht erst zig Layer abgearbeitet werden müssen, was bei Sockets der Fall ist.
Sun bietet doch eh ein recht gutes Tutorial und wenn du Interesse hast kann ich dir auch eine Zusammenfassung/Einführung und Beispielprogramme sendenGeändert von davedigital (03.09.04 um 12:41 Uhr)
-
Hm, Unix Domain Sockets wären hier passend, allerdings werden die AFAIK von Java nicht direkt unterstützt (müsstest also wieder über das JNI gehen).
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Ich glaube ich wühle mich mal in FIFOs ein
Habe da was für Java gefunden und für C auch
So wie es bisher verstehe arbeiten die ähnlich wie eine Datei -
@davedigital danke für das Angebot - das JNI Tut bei Sun kenne ich
Ich habe bei JNI ein massives Problem mit Arrays
um da mal in Detail zu gehen: Ich habe in C ein Array mit unsign Char (also 1 Byte pro Wert)
und das einzige was in Java in der Richtung gibt ist Byte und dann mit Vorzeichen
ich bekomme also beim Datentransport ein Vorzeichen was ich nicht brauchen kann
- ich mache gern ein Thread in Java zu dem Thema auf
Nur scheint hier noch keiner mit JNI geabeitet zu haben
Ich fühle mich wie Enterprise : Vorstossen in Regionen wo noch nie einer vor Ihm war *g*
-
03.09.04 23:40 #6
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Also ich würde die Variante B anpacken.
Die hats zwar insich, aber an Geschwindigkeit hat sie bestimmt die Nase vorn.
Unter Windows gäbe es die möglichkeit COM zu nutzen.
Unter UNIX kann man über IPC sogar eine komplette COM-Komunikation aufbauen (wenn man das Know-How hat)
Gruß Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
Wo ist das Problem mit den Vorzeichen? Du kopierst in Java dann einfach den Bytearray in einen Integerarray um. Und danach machst du das Vorzeichen rückgängig. Wenn positiv oder 0, dann unverändert. Wenn negativ, dann Invertieren sprich XOR mit FFFF. Genaueres siehe Wikipedia.
Ähnliche Themen
-
Wie beendet man eine .htaccess-Session (sagt man da so?)
Von dwex im Forum PHPAntworten: 2Letzter Beitrag: 25.08.05, 04:19 -
Programm sagt: "kein Java installiert" obwohl eines ist
Von Jotho im Forum JavaAntworten: 1Letzter Beitrag: 12.03.05, 20:07 -
animated Gif in andren Bildern?
Von Collateral im Forum Vektor-ProgrammeAntworten: 2Letzter Beitrag: 17.04.04, 18:25 -
Auf Localhost vom andren Rechner zugreifen
Von mcphilli im Forum NetzwerkeAntworten: 2Letzter Beitrag: 06.04.04, 14:53 -
Datei in einem andren Ordner
Von mæstrø im Forum PHPAntworten: 6Letzter Beitrag: 16.10.01, 19:03





Zitieren


Login





