Aus C eine HTML Seite aktualisieren

OP #4562825
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Webinterface zur Ausgabe von Daten. Nun verarbeite ich mit 
einem in C geschriebenem Programm Daten und schreibe diese in eine 
Datenbank. Diese Daten sollen dann am besten mit Ajax / jQuery oder 
ähnlichem im Browser nachgeladen werden. Kennt jemand eine Möglichkeit? 
Ich will umgehen die Seite jede Sekunde oder sonst eine Konstante Zeit 
neu zu laden sondern nur dann, wenn ich neue Daten mit C in die 
Datenbank geschrieben habe...
Gast #4564560
Lesenswert?
• ▲
▼
Christian S. schrieb:
> Nun das umgekehrte ...
>
> Wenn die Website etwas in die Datenbank schreibt, wie kann man das mit
> dem C Programm ohne kostantes pollen mitbekommen? Callbacks.. finde
> nichts für c und mysql ...

Die Frage ist warum die Webseite direkt in die Datenbank schreiben soll. 
Wenn man dort eine Mittelware einsetzt kann sie das alles übernehmen.

Du brauchst ein Zentrales Programm was solche dinge übernimmt. Das 
Programm verbindet sich mit der Datenbank und die andere Teilnehmer 
(web) verbinden sich auch mit diesem Programm.
Gast #4564578
Lesenswert?
• ▲
▼
Christian S. schrieb:
> Du meinst das nur einer mit der Datenbank spricht.
>
> Also C File schreibt in die Datenbank und gibt gleichzeitig Daten an php
>
> Und wenn php Daten in die Datenbank schreiben will, schreibt es die
> Daten dem C File und das C File die Daten dann in die Datenbank...?

ja so in der Art. Dabei muss es auch kein C Programm sein, man kann auch 
dafür ein WebApplication mit Java, .net (u.s.w.) schreiben.
(PHP ist keine WebApplication!)
#4564581
Lesenswert?
• ▲
▼
Der Browser wird ein Script oder Programm auf dem Server aufrufen, um 
daten in die db zu schreiben. Falls das selbe Programm und der selbe 
Prozess das Empfangen, Speichern und Senden der Daten übernimmt, kannst 
du das in diesm intern lösen. Andernfalls brauchst du 
Interprozesskomunikation. Dazu kanst du z.B. unix sockets, FIFOs oder 
shared memory oder Signale verwenden. Lasse einfach das Speichernde 
Programm das Akualisierende benachrichtigen.
OP #4564594
Lesenswert?
• ▲
▼
hmmm

Daniel A. schrieb:
> Lasse einfach das Speichernde
> Programm das Akualisierende benachrichtigen.

Du meinst wenn c daten in die Datenbank schreibt, schickt es direkt eine 
Art Interrupt an die Website (sagen wir mal Ajax) und Ajax aktualisiert 
dann)

Und umgekehrt genau so dh. wenn die Website Daten in die Datenbank 
schreibt, schickt diese eine Art Interrupt an das C Programm. Das C 
Programm guckt in die Datenbank und nutzt die Daten...
Gast #4564598
Lesenswert?
• ▲
▼
Christian S. schrieb:
> Du meinst wenn c daten in die Datenbank schreibt, schickt es direkt eine
> Art Interrupt an die Website (sagen wir mal Ajax) und Ajax aktualisiert
> dann)

was nicht geht, ein Webserver kann nicht aktiv etwas senden. Die 
Webseite kann z.b. mit dem LongPolling sich mit dem C Programm verbinden 
und dieses antwortet wenn ich etwas ändert.
OP #4564744
Lesenswert?
• ▲
▼
Es müsste doch machbar sein, dass man mit Websockets die Website aktuell 
hält. Dh. shreibt das c Programm Daten in die Datenbank, erledigt man 
das z.b. mit nodejs.

Will die Website Daten in die Datenbank schreiben, kann man mit php doch 
den Befehl exec() oder shell_exec() nutzen und neben dem Datenbank 
eintrag ein c programm aufrufen, welches auf dem Server liegt. Dieses c 
Programm guckt dann direkt in der Datenbank nach dem letzten Update und 
macht was mit...

Somit müssten doch alle Richtungen abgedeckt sein...?!

Spricht da was gegen?
Gast #4564870
Lesenswert?
• ▲
▼
Christian S. schrieb:
> Hast du das schonmal verwendet oder ist das eine Theorie?

ja habe ich. Habe damit eine Haussteuerung programmiert. Wenn jemand das 
Licht einschaltet dann zeigen alle verbunden Browser den geänderten 
Status sofort an.

Das ganze mit LongPolling (damals wusste ich noch nicht mal wie das es 
dafür schon einen namen gibt, hatte mir es selber einfallen lassen) und 
Ajax mit JSON.
Gast #4564910
Lesenswert?
• ▲
▼
Christian S. schrieb:
> Könntest du mir das schicken? Wäre sehr nett!

nein leider nicht, das ist nichts zum weitergeben.


Wie gesagt, es ist gar nicht so schwer. Suche dir eine lib womit du aus 
C eine Webserver breitstellen kannst. Dann noch eine json lib und dann 
hast du fast alles zusammen.

Ich habe alles von Grund auf selber geschrieben, einfach nur weil es mal 
versuchen wollte.
#4565017
Lesenswert?
• ▲
▼
Peter II schrieb:
> net (auch mono unter Linux) bietet alles was man brauch. eine Einfach
> Version ist vermutlich schon mit 20-30 Codezeilen möglich.

Ich würde mich von allem was MS softwaretechnisch macht fernhalten, das 
ist nicht von dauer.
Ich würde eher auf nodejs setzen, enthält standardmässig http module. 
Für websockets nutze ich https://www.npmjs.com/package/websocket , 
verschidene DBs sind dort noch nicht so gut abstrahiert, aber 
https://github.com/w1nk/node-odbc/ sieht sehr vielversprechend aus.
OP #4565085
Lesenswert?
• ▲
▼
Peter II schrieb:
> muss es denn bei dir C sein?

C oder C++

Peter II schrieb:
> .net (auch mono unter Linux) bietet alles was man brauch. eine Einfach
> Version ist vermutlich schon mit 20-30 Codezeilen möglich.

Werde ich mir mal angucken. Im Moment tendiere ich zu nodejs.

Daniel A. schrieb:
> Ich würde mich von allem was MS softwaretechnisch macht fernhalten, das
> ist nicht von dauer.

Sei doch nicht so skeptisch :)

Daniel A. schrieb:
> https://github.com/w1nk/node-odbc/ sieht sehr vielversprechend aus

Schonmal getestet?
Gast #4565089
Lesenswert?
• ▲
▼
Daniel A. schrieb:
> Peter II schrieb:
>> net (auch mono unter Linux) bietet alles was man brauch. eine Einfach
>> Version ist vermutlich schon mit 20-30 Codezeilen möglich.

> Ich würde mich von allem was MS softwaretechnisch macht fernhalten, das
> ist nicht von dauer.
klar kann niemand in die Zukunft sehen, aber eine Sprache die einem 
alles bietet was man braucht und stabil läuft würde ich nicht 
ausschließen nur weil sie von MS erfunden wurde.

> Ich würde eher auf nodejs setzen
das würde ich persönlich ausschließen. Ich mag keine Sprachen ohne 
Datentypen. Ist halt eine Scriptsprache - es gibt keine Compiler Fehler. 
Fehler fallen erst zu Laufzeit auf.

Im Browser hat man ja keine Wahl, aber doch nicht auf dem Server.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren