Jump to content

Datenaustausch C Programm mit dem Webserver


adr3

Recommended Posts

Hallo liebe Community

 

Ich habe eine Frage bezüglich dem Webserver auf dem RED: Gibt es eine einfache Möglichkeit Daten zwischen einem Programm auf dem RED und dem Webserver auszutauschen?

 

Zur Situation: Ich habe ein C/C++ Programm auf einem RED, welches dauerhaft ausgeführt wird. Nun möchte ich einige Variablen/Daten vom Programm auf der Webseite des Red Bricks anzeigen aber auch Daten auf der Webseite eingeben können, welche ich dann im C Programm verarbeiten kann.

 

Die Daten kommen nicht nur von Peripherie, welche am Masterbrick angeschlossen sind, sondern auch über das Netzwerk. Ich möchte also nicht mit dem Webserver auf die Peripherie.

 

Ich habe mir gedacht die Daten in eine DB (sqlite3) zu schreiben und so mit dem Webserver/php auf dem Webserver zu holen. Allerdings möchte ich nicht über die Datenbank kommunizieren und finde diese Variante etwas unschön. Allerdings bin ich nicht vom Fach  ;)

 

Kennt jemand eine einfache Möglichkeit die Daten vom C Programm auf die Webseite/Webserver zu bringen und umgekehrt(Also auch eingaben auf der Webseite in das C Programm zu holen)?

 

LG

 

Link zu diesem Kommentar
Share on other sites

Hallo,

 

es gibt sehr viele Varianten, für die man entscheiden könnte. Generell wird solche Funktionalität unter dem Begriff „Inter-process communication“ ausgehängt. Mehr Information kannst Du bei Google zu dem Begriff finden.

 

In meinen privaten Projekten habe ich bislang die Bibliothek ICE von ZeroC verwendet. In meinem Berufsleben habe ich mehr mit dem OmniOrb (CORBA) zu tun. Die beiden Bibliotheken implementieren die RPC (remote procedure call) Paradigma der Interprozesskommunikation. Dabei bist Du nicht gezwungen, dass die Prozesse auf einem Hardware laufen und können beliebig im Netz verteilt werden.

 

Eine einfachere Variante ist die „Shared memory“. Das ist eine sehr robuste und schnelle Methode, die bei uns für die zeitkritischen Anwendungen genommen wird.

 

P.S. Vorsicht, da ich auch nicht vom Fach und nur ein Quereinsteiger bin.

 

Viele Grüße,

Kirill

Link zu diesem Kommentar
Share on other sites

Sowohl Dein C Programm als auch der Webserver laufen auf dem RED ?

 

Kommunikation per DB (Schnittstellentabelle) wäre durchaus eine Möglichkeit.

 

Alternativ müsstest Du eine HTTP Client Bibliothek einbinden, um Daten an die Webseite zu senden oder zu holen.

 

Das ließe sich auch mit "wget" oder "curl" machen: Dein C Programm könnte eines dieser Programme aufrufen, um die Daten zu senden/empfangen und Du musst "nur" noch Dateien verarbeiten. Sowas ist auch recht gut testbar.

Link zu diesem Kommentar
Share on other sites

Vielen Dank für eure Antworten!

Das Prinzip "Shared Memory" klingt interessant, kannte ich bisher noch nicht und werde das die Woche mal etwas genauer anschauen.

 

Sowohl Dein C Programm als auch der Webserver laufen auf dem RED ?

Genau, beides läuft auf dem selben RED.

 

Alternativ müsstest Du eine HTTP Client Bibliothek einbinden, um Daten an die Webseite zu senden oder zu holen.

 

Das ließe sich auch mit "wget" oder "curl" machen: Dein C Programm könnte eines dieser Programme aufrufen, um die Daten zu senden/empfangen und Du musst "nur" noch Dateien verarbeiten. Sowas ist auch recht gut testbar.

Ich werde die beiden Varianten mal genauer anschauen, danke :)

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...