Forum: PC-Programmierung Java / C++ über Webbrowser ??


von semapf (Gast)


Lesenswert?

Hallo!

Ist es möglich ein C++ über einen Webbrowser auszuführen und zu
"bedienen"? Ich würde gern eine Windows-Anwendung zur Steuerung der
seriellen Schnittstelle in C++ programmieren. Allerdings sollte diese
Anwendung auf einem Webserver abgelegt und über ein Intranet ausführ-
und bedienbar sein. Ist dies möglich und wenn ja - funktioniert dies
gut ??

Ich hatte bisher noch gar nichts mit Java zu tun und daher sind meine
Kenntnisse in dieser Programmiersprache gleich null. Daher würde mich
zusätzlich noch interessieren, warum Java gut in Netzwerken
funktioniert und C++ nicht !??

Vielen Dank für Eure Antworten !!

Gruß

semapf

von Stefan1 (Gast)


Lesenswert?

Java läuft auf dem Client, somit fürst du es auf dem rechner aus von dem
aus du es Aufrufst! Wenn du etwas auf dem Server machen willst ist es
somit ungeignet!

c-Code kannst du im Webserver als CGI-Skripte laufen lassen. Eine
andere Möglichkeit ist es z.B: per php mit exicute() oder
vergleichbaren ein C/C++ ( oder was auch immer.. muß halt ein
ausführbares Programm sein) ausführen zu lassen!
Funktioniert unter Linux & Apache ganz gut!

Hierbei eben immer etwas auf die Sicherheit des Webservers achten!

Stefan

von womisa (Gast)


Lesenswert?

Hallo

@stefan1 Java kann natürlich genauso wie  CGI in verbindung mit C
laufen. Man spricht mit dem Browser einen Server  an zb.: TOMCAT von
Apache und führt auf dem Server ein JAVA-Servlet aus, welches wiederum
alle JAVA Funktionen ausführen kann. Dieses funktioniert sehr gut und
stabil. Leider gibt es nicht viele Provider, die Servlet-Container
unterstützen, aber im "eigenen" Bereich ist das problemlos und mit
keinen Kosten verbunden (TOMCAT, JAVA-SDK, J2EE...).
Über das JNI (JAVA NATIVE INTERFAC) kann man C bzw. C++ ansprechen,
aber warum dann nicht gleich alles in JAVA?

MfG
Achim

von Matthias (Gast)


Lesenswert?

Hi

Hardware in Java ansprechen ist schwierig. Es gibt für seriell/parallel
zwar die Java COMMAPI bzw. das Zeuchs von rxtx.org für Linux aber das
ist alles auch nichts anderes als eine C(++) DLL/SO die über das JNI
angesprochen wird.

Matthias

von Stefan1 (Gast)


Lesenswert?

@Womisa, hab es schon ( zumindest so in etwa ) gewust, aber durch den
Kommentar "Ich hatte bisher noch gar nichts mit Java zu tun[...]" von
semapf, wollte ich in einem Satz den Unterschied erläutern und das ist
meiner Meinung nach der größte!

Wenn man schon mit C/C++ gearbeited hat ist es sicher leichter das Prog
als CGI -c/C++ oder per Aufruf über php zu schreiben als es über Java zu
realisieren! Kann aber auch daran liegen, das ich allgemein ( noch? )
nicht so ganz von Java überzeugt bin und zudem mich zuerst noch in die
Mathereie einarbeiten müste!

Stefan

von Rufus T. Firefly (Gast)


Lesenswert?

Der Deiner Ansicht nach größte Unterschied ist aber gar keiner, wie
womisa dargelegt hat.
Auch Java-Applikationen (Servlets) können auf dem Server laufen,
genauso, wie es in C/C++ geschriebene CGIs oder php/perl-Skripte
machen;  ein Unterschied ist, daß Java-Applets (oder Javaskript) auch
auch dem Client laufen können.

Bevor hier weitere Diskussionen geführt werden, sollte allerdings
präzisiert werden, was mit semapfs Formulierung

  "Ich würde gern eine Windows-Anwendung zur Steuerung der
  seriellen Schnittstelle in C++ programmieren. Allerdings
  sollte diese Anwendung auf einem Webserver abgelegt und
  über ein Intranet ausführ- und bedienbar sein."

genau gemeint ist.

Soll die Anwendung die serielle Schnittstelle des Servers bedienen?
Oder soll die Anwendung vom Server heruntergeladen und auf den Clients
lokal ausgeführt werden?


Im übrigen ist Deine (Stefan) Tastatur kaputt; Du solltest Dir mal eine
neue anschaffen. (Das von Dir verwendete Satzendezeichen '!' lässt
dies zumindest vermuten)

von semapf (Gast)


Lesenswert?

Hallo!

Erstmal Danke für die vielen Antworten.

Also folgender Sachverhalt liegt vor:

Ich möchte über Intranet ein elektrisches Tor öffnen. Dafür möchte ich
ein Modul verwenden, das ich in der Zeitschrift ct entdeckt habe (
http://www.heise.de/ct/ftp/projekte/com2lan/ ). Dieses Modul besitzt
einen XPort, welcher einen kleinen Webserver enthält, auf dem man ein
kleines Java-Applet oder HTML-Dokument ablegen kann und über eine
IP-Adresse kontaktierbar ist. Darüber hinaus wandelt das Modul LAN in
seriell. Somit kann ich den ebenfalls im Modul integrierten
Mikrocontroller ansprechen. Wenn ich das richtig verstanden habe,
verläuft der Steuerungsweg wie folgt:
Webbrowser -> LAN -> seriell -> Mikrocontroller -> elektr. Signal ->
Tor wird gesteuert.

Nun zu meinen Problemen. Ich kenne mich gut aus in Sachen
Elektrotechnik, Mikrocontrollern, C und C++. Leider habe ich,
Elektrotechniker, wenig Ahnung von Netzwerktechnik und Java. Ich hatte
bisher nur mit Stand-Alone-Systemen zu tun.
Somit weiß ich nicht, wie ich meine Bytes über LAN (mittels Webbrowser)
gesteuert an meinen Mikrocontroller senden kann, sodass dieser mir das
gewünschte elektrische Signal ausgibt und ich mein Tor öffnen bzw.
schließen kann. In C++ und einem Stand-Alone-System wäre das sicherlich
kein großes Problem. Da aber C++ nicht einfach über einen Webbrowser
ausführbar ist, bin ich auf Java aufmerksam geworden - aber davon habe
ich, wie gesagt, wenig bis gar keine Ahnung.

Des Weiteren versuche ich zusätzlich das Tor mit einer Kamera zu
überwachen. Das so aufgezeichnete Bild sollte auf der gleichen
Webseite, mit der ich das Tor öffne und schließe, zu sehen sein. Dafür
möchte ich eine Kamera mit Webserver (IP-Kamera) verwenden - ist dies
sinnvoll ? Wie könnte man ein Kamerabild noch im Webbrowser anzeigen
??

Nun hoffe ich, dass dies nicht zuviel auf einmal war, aber trotzdem
würde ich mich über ein paar Anregungen sehr freuen !!

Gruß

semapf

von Christoph Seiwert (Gast)


Lesenswert?

Hallo semapf,

bin gerade durch Zufall auf diese Seite gestoßen und habe den Beitrag
gelesen. Wollte nur fragen, ob es mittlerweile (ist ja doch schon
einige Zeit her) eine Lösung für das von Dir angefragte Problem gibt!
Stehe nämlich gerade vor der selben Hürde (C++, aber kein
Java-Verständnis), sodaß mich die Lösung sehr interessieren würde!

Vielen Dank vcrab

SMILEY

von mr.chip (Gast)


Lesenswert?

Hallo

Die Ansteuerung der seriellen Schnittstelle funktioniert mit Java
mittels rxtx.org absolut eindwandfrei. rxtx ist übrigens auch nicht
'für Linux' sondern läuft mindestens auch noch auf Windows
problemlos.

Gruss

Michael

von Johnny (Gast)


Lesenswert?

Hallo

Also der XPort hat einen Netzwerkport, welcher dann direkt auf die
serielle Schnittstelle zum Microcontroller durgeschleift ist.
Wenns nicht unbedingt über einen Browser bedient werden muss, dann
kannst Du ganz einfach ein Tool in C++ oder jeder anderen Sprache
schreiben, welches direkt über Sockets mit dem XPort kommuniziert.

Wenns über den Browser gehen soll, dann würde ich im Netzwerk nebst dem
XPort einen weiteren Webserver (auf einem PC) aufsetzten, auf dem ein
CGI mit dem GUI für die Bedienung abläuft und per Sockets mit dem XPort
kommuniziert.

Mit diesen Lösungen musst Du nichts in Java oder am XPort selber
programmieren.

Gruss
Johnny

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.