Applet mit Script steuern

Status
Nicht offen für weitere Antworten.

Chris_Bayern

Mitglied
Hallo zusammen,

ich hoffe ich bin hier richtig.
Ich suche ein applet, welches mir eine Verbindung zu einem Host auf einem bestimmten Port öffnet.
Hintergrundsituation:
Ich habe einen Xport (Ethernet<=>rs232-koppler) der auf Port 80 via http das Applet und auch ein paar html-Seiten zur Verfügung stellt.
Leider hat weder der Xport noch der, via rs232 angeschlossene Prozessor genügend Rechenleistung um http-Anfragen beantworten zu können, geschweige denn dynamisch html-Seiten generieren zu können.

Meine Idee ist nun, auf dem Port 80 des Xport eine HTML-Seite mit Java-Script bereit zu stellen, die Ihrerseits zur Kommunikation mit meinem Prozessor lediglich eine Datenverbindung also einen Socket zum Port 10001 öffnet. Hier werden lediglich Steuerbefehler direkt zur rs232-Schnittstelle, also zu meinem Prozessor übertragen.

Ich brauche also ein Applet, welches von einem Script in der HTML-Seite aufgerufen werden kann. Bei dem Aufruf möchte ich die zu sendenden Steuerzeichen übergeben, die dann an den Port 10001 ohne jeden HHTP-Header geschickt werden. Ein Timeout beendet diese Verbindung, wenn nicht innerhalt von 1 oder 2 Sec. eine Antwort kommt. Die Antwort muß natürlich dann auch wieder an mein Script in der HTML-Seite zurück gegeben werden können um Sie dort auszuwerten und die Webseeite entsprechend zu füllen.

Ich habe leider keinen blassen Schimmer von JAVA-Programmierung und komme hier deshalb nicht weiter. Gibt es hier jemanden der mir helfen kann?
Das Applet soll so lange einen ASCCII-Zeichen vom Port 10001 lesen, bis ein CR (ASCII 13) empfangen wurde und dann die Verbindung sofort beenden. Wenn nix kommt, dann nach 1 od. 2 Sec. mit entsprechender Rückgabe an das aufrufende Script beenden.
Mit dem darstellen der empfangenen Daten auf der Webseite komme ich klar, lediglich das Applet und dessen Aufruf vom JavaScript bereitet mir Kopfzerbrechen.

Bitte um Info, wenn ich mich unklar ausgedrückt haben sollte.

Bitte um Hilfe!

Danke schon mal im Voraus!

Gruß Christian

P.S. Wenn das ganze dann auch noch auf einem WindowsMobile-Browser funktioniert, dann wäre das obergenial, ist aber keine Voraussetzung
 
G

Gast2

Gast
Moin,

wenn mich nicht alles Täuscht hat der XPort eine API bzw. der bindet Deine externe Schnittstelle als COMx ... im letzteren Fall brauchst Du nur die COM-Schnittstelle öffenen ... für die API wirst Du wahrscheinlich nur eine TCP-Verbindung zum Gerät herstellen müssen

Nachtrag:
Com-Port-Redirector

hand, mogel
 

Chris_Bayern

Mitglied
Diese Möglichkeit besteht, nur auf diese Art bekomme ich keine Verbindung zur Webseite. Ich muß die empfangenen Daten in der Webseite darstellen. Außerdem möchte ich nichts installieren. Wenn ich was installieren könnte, dann würde ich meinen C-Conpiler bemühen und das Problem wäre in 5 Minuten aus der Welt.
Die GUI soll komplett als HTML-Darstellung per Webbrowser laufen, also auch Hardware unabhängig!

Trotzdem Danke für die Antwort!
 

Chris_Bayern

Mitglied
Hallo nochmal,

ich habe schon mal ein wenig mit Beispielen die ich im Internet gefunden habe herumexperimentiert, und habe mit folgendem Code eine Kommunikation zur RS232 des Xport aufbauen können.
Frage ist, wie bekomme ich das von mein Javascript eingebunden?
Code:
import java.net.*;
import java.io.*;
import java.applet.Applet;

public class Client extends Applet {
  int inbyte;
  static String outstring = new String("");

	Client() throws IOException {
  	Socket server = new Socket ("192.168.0.30", 10001);

    InputStream input = server.getInputStream();
    OutputStream output = server.getOutputStream();
    output.write( 105 ); // kleines i
    output.write( 13 );  //CR
    output.flush();
    server.setSoTimeout(2000);
    do {
      inbyte = input.read();
      outstring  += (char)inbyte;
    } while (inbyte != 13 );
    System.out.println( outstring );
    server.close();
    input.close();
    output.close();

	}

	public static void main (String[] args)
	{
	  try {
	    Client client = new Client();
	  } catch (IOException e) {
	    System.out.print(e);
	  }
  }
}
Wenn ich z.B. einen Button drücke soll das Applet eine, zu übergebende Variable statt des "i" senden.
Außerdem ist mir völlig schleierhaft, wie ich die Rückgabe des Applets in meinem Javascript weiter verarbeiten kann.

Bitte dringend um Hilfe!

Danke chon mal
 
G

Gast2

Gast
Moin,

1. Erkläre mal bitte was Du genau machen möchtest.
2. Wieso muss es unbedingt ein Applet sein?

Code:
Socket server = new Socket ("192.168.0.30", 10001);
hängt hinter dieser IP der XPort ??

Code:
InputStream input = server.getInputStream();
OutputStream output = server.getOutputStream();
output.write( 105 ); // kleines i
output.write( 13 );  //CR
output.flush();
falls ja ... dann ist das ja noch einfacher mit der Kiste zu quatschen als ich dachte

Code:
server.setSoTimeout(2000);
das sollte eigentlich nach der Instanzierung und vor dem Binden des Servers an den Socvket passieren

hand, mogel
 

Chris_Bayern

Mitglied
Moin,

es muß kein Applet sein. Ich bin nur davon ausgegangen, dass eine Verbinung mit Javascript zu einem X-beliebigen Port nicht möglich wäre. Wenn doch, dann um so besser.
Was ich will, ist eigentlich ganz einfach:
Ich habe eine Webseite mit z. B. einem Formular, ein paar buttons usw.
drücke ich z.B. einen Button, so soll mein Prozessor hinter dem Xport einen String gesendet bekommen, der z.B. "Licht 1 EIN" beinhaltet oder auch z.B. "Status Licht 1?".
Der Prozessor schickt nach Abarbeiten des gesendeten Befehls eine Antwort wie z.B. "Status Licht 1 EIN" oder bestätigt das erste Beispiel mit "Licht 1 EIN.
Diese Hin und Her von Senden und auf Empfangen warten brauche ich, nicht mehr und auch nicht weniger.
Es dürfen über die RS232 keine HTML-Header oder so ankommen, diese bremsen nur, zumal ich sie nicht benötige.

Ich hoffe diese Erklärung war etwas hilfreicher, derartige Erklärungen sind nicht gerade meine Stärke!
 
G

Gast2

Gast
Moin,

Du willst mit einem Applet Daten von XPort auslesen ... dem quasi die Webseite mit dem Applet überbügeln ... und dann willst Du auf einen Button klicken und dem XPort sagen "fang das Licht - halt es fest"?

Wozu zu Hölle willst Du da was mit Java-Script machen? Du kannst doch alles über das Applet machen?!

hand, mogel

PS: oder ich habe es immer noch nicht verstanden
 

Chris_Bayern

Mitglied
Moin,

Nicht so ganz das was ich meine.

Ich versuchs mal anders:
Ich habe eine kleine Html-Seite mit zwei Text-Eingabefeldern und einem Button.
Ich schreibe einen Text in das erste Eingabefeld.
Drücke ich jetzt den Button, so soll der eingegebene Text zum Xport geschickt werden.
Vom Xport kommt nun ein Antwortstring, der in dem zweiten Eingabefeld wieder angezeigt wird.
Nachdem in der Antwort das Asciizeichen 13, also CR erkannt wurde, wird die Verbindung sofort beendet.
Kommt keine Antwort, so soll die Verbindung nach 1 bis 2 Sec. abgebrochen werden.

Es darf nur der Text des Eingabefeldes verschickt werden, keinesfalls irgendwelche HTTP-Header!

Wenn das ganze ohne Applet möglich ist, dann um so besser.

ICH BRAUCHE NICHT ZWINGEND EIN APPLET!!!

Herzlichen Dank für die Geduld!
 
G

Gast2

Gast
Moin,

schau mal in das 4. (Deins) und 5. (meins) Posting ... da steht alles drinnen ... Du hast doch schon eine Kommunikation zwischen einem Applet/Webseite und Deinem XPort aufgebaut ... außerdem habe ich das Gefühl das Du Java und JavaScript verwechselst

hand, mogel
 

Chris_Bayern

Mitglied
Moin,

ch habe mir das ganze noch mal durch den Kopf gehen lassen und noch ein wenig in richtung Script gegoogelt.
War mir nicht bekannt, dass eine Socket-Verbindung auch mit einem "einfachen" Script realisierbar ist. Jedenfalls habe ich auch hierzu ein Beispiel gefunden, das soweit auch funktioniert, aber mit senden und Empfangen ist hier leider nix. Ein komplettes Beispiel mit senden und empfangen habe ich leider nicht gefunden, aber ggf. wird so klar, was ich machen möchte?

Code:
<html>
<head>
   <html>
   <script language="JavaScript">
      var sockets = new Array();
      var highestSocketIndex = 0;

      function newSocket(server, port, String2Send)
      {

         log("Create new socket... ", false);
         var newSize = sockets.push(new java.net.Socket());
         highestSocketIndex = newSize - 1;
         log("done (socket id " + highestSocketIndex + ")", true);
         try {
            log("Try to connect to " + server + " on port " + port + "... ", false);
            sockets[highestSocketIndex].connect(new java.net.InetSocketAddress(server, port));
            log("done", true);
         } catch(e) {
            log("failed: " + e, true);
         }
         try {
            log("Try to close socket... ", false);
            sockets[highestSocketIndex].close();
            log("done", true);
         } catch(e) {
            log("failed: " + e, true);
         }
         log("", true);
      //   return StringAntwort;
      }

      function log(message, doBreak)
      {
         var l = document.getElementById("log");
         if (doBreak)
            l.innerHTML += message + "
";
         else
            l.innerHTML += message;
      }

      function resetLog()
      {
         var l = document.getElementById("log");
         l.innerHTML = "[b]Log[/b]
";
      }
   </script>
   <title>Test Xport</title>
</head>
<body onLoad="resetLog();">
[url="javascript:newSocket('localhost', 10001,'zu sendender String');"]Test Xport simulator[/url]


[url="javascript:resetLog();"]Clear log[/url]


<div id="log"></div>
</body>
</html>
Kannst du das Script so ergänzen, dass der, im Aufruf übergebene Parameter "String2Send" auch wirklich gesendet wird und der empfangene String von der Funktion newSocket zurück gegeben wird?
Es ist mir bekannt, dass die Rückgabe bei dem Aufruf keinerlei sinn macht, aber zur Erklärung soll es mal reichen.

Bevor die Frage kommt, warum ich mich jetzt plötzlich auf "localhost" verbinde, ist einfach. Ich habe mir zum testen ein kleines Programm geschrieben welches einen Port 10001 auf meinem Rechner öffnet. Dieses Programm zeigt mir eine Meldung, wenn ein Connect erfolgreich war, den gesendeten Text und schickt auch automatisch eine Antwort zurück.

Ich benötige das, weil ich z.B. die Außentemperatur auf einer Intranet-Seite (soll nur bei uns zuhause funktionieren) mit anzeigen will. Diese Temperatur wird von einem Atmel-Prozessor erfasst, der wie Eingangs schon erwähnt über der Xport am Hausnetz hängt. Schicke ich jetzt z.B. den Befehl "Aussentemperatur" über den Xport an den Prozessor, antwortet der mit der aktuellen Außentemperatur. Den empfangenen wert kann ich dann in meiner Webseite anzeigen wo ich ihn gerade haben möchte ohne jedes mal die ganze Seite neu laden zu müssen.

Übrigens:
So weit ich weiß ich ein Script etwas, das zur Laufzeit interpretiert wird und ein Applet etwas, was compiliert werden muß um danach auf einem Xbeliebigen Betriebssystem von einer Virtuellen Maschine ausgeführt wird. Richtig?

Wie bereits erwähnt, ist es mir letztendlich egal, ob die Kommunikation nun, wie im letzten Beispiel von einem Script oder einem Applet abgewickelt wird. Mir ist das am liebsten, was auch auf einem WindowsMobile5 PDA mit Operabrowser funktioniert. So weit ich gelesen habe ich bei WM5 nicht viel mit JavaVM.

Herzlichen Dank schon mal

Gruß
Christian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Androbin Socket Fehlerhafter Applet-Chat Netzwerkprogrammierung 12
S Datei schreiben über Applet Netzwerkprogrammierung 8
N Applet/Applikation auf Xport laufen lassen Netzwerkprogrammierung 10
N Applet Access Denied Netzwerkprogrammierung 12
TheJavaKid Webcam-Chat im Applet (ChatRoulette Klon) Netzwerkprogrammierung 10
H Applet soll XML-File auf Server speichern Netzwerkprogrammierung 6
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
B FTP Applet mit FTP-Server-Zugriff sicher gestalten Netzwerkprogrammierung 12
J Applet soll Daten auf Server ablegen - einfachster Weg fuer n00bs? Netzwerkprogrammierung 4
O php - applet Kommunikation Netzwerkprogrammierung 9
B Client Server Applet keine Ahnung Netzwerkprogrammierung 3
R Applet --> PHP --> Applet Netzwerkprogrammierung 2
E Userliste für Chat Applet Netzwerkprogrammierung 4
B RTP - Applet Starthilfe Netzwerkprogrammierung 7
B Globale IP-Adresse auslesen - Java Applet Netzwerkprogrammierung 2
S RMI RMI-Applet kommunikation funktioniert nicht Netzwerkprogrammierung 8
J Applet Security - java.security.AccessControlException: access denied Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
E Files von Server laden in Applet Netzwerkprogrammierung 5
aze Applet von Webseite aufrufen und mit diesem kommunizieren Netzwerkprogrammierung 8
M chat als applet umgeschrieben - unbekannter fehler :( Netzwerkprogrammierung 2
U Server-IP in Applet ermitteln Netzwerkprogrammierung 4
J Connection Speed Test ohne Applet Netzwerkprogrammierung 5
ABstraCT Applet multipler port Zugriff möglich ? Netzwerkprogrammierung 5
A Problem mit Netzwerkprogrammierung im Applet! Netzwerkprogrammierung 10
F applet verbindung zum server Netzwerkprogrammierung 6
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
F Applet Datei Zugriff Netzwerkprogrammierung 13
M Server aus inem Applet heraus starten Netzwerkprogrammierung 4
G Applet und Netzwerkverbindungen? Netzwerkprogrammierung 2
F Daten senden und empfangen mit Applet Netzwerkprogrammierung 8
K Datenaustausch zwischen Applet und JSP Netzwerkprogrammierung 4
E Applet zum Datei-Upload Netzwerkprogrammierung 3
T Image aus Applet an PHP Seite senden? Netzwerkprogrammierung 3
S Java Applet Chat Grundsatzfrage Netzwerkprogrammierung 6
H RMI + Socket + Applet Netzwerkprogrammierung 5
N Chatprogrammierung - Applet Netzwerkprogrammierung 3
S Von Applet zu applet Netzwerkprogrammierung 7
G RMI + Applet - Verbindung nur lokal Netzwerkprogrammierung 27
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
Paule Connection Applet Servlet ohne Socket bzw RMI Netzwerkprogrammierung 2
G Applet java.net: acces denied Netzwerkprogrammierung 2
D Einfache Applet-Servlet-Kommunikation Netzwerkprogrammierung 5
R Applet & Netzwerk Netzwerkprogrammierung 4
M Servlet - Applet Kommunikation Netzwerkprogrammierung 3
M Einfachste Möglichkeit aus'm Applet Daten an Server senden Netzwerkprogrammierung 6
K Applet - Servlet Kommunikation ohne Sockets Netzwerkprogrammierung 5
R applet servlet kommunikation Netzwerkprogrammierung 2
M Zum x-ten Mal: Problem mit NetSend-Applet Netzwerkprogrammierung 5
C Applet <> Servlet Netzwerkprogrammierung 4
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
P PHP Script per Java ausführen Netzwerkprogrammierung 2
M String an PHP Script aus Java übergeben Netzwerkprogrammierung 12
F php script in java aufrufen Netzwerkprogrammierung 13
Semox Shell Script in Java Class aufrufen Netzwerkprogrammierung 2
T Java Script auswerten Netzwerkprogrammierung 4
A InputStream liest immer komplettes PHP-Script Netzwerkprogrammierung 6
M BufferedImage an PHP-Script senden Netzwerkprogrammierung 4
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
B Inputfelder in php script füllen Netzwerkprogrammierung 8
E In Webseite einloggen/ GET, POST an PHP-Script übergeben Netzwerkprogrammierung 2
C Login bei einem php-script Netzwerkprogrammierung 2
A daten an php script per post senden und ausgabe einlesen Netzwerkprogrammierung 6
C POST-Parameter aus HTML-Script lesen Netzwerkprogrammierung 1
OnDemand API Aufruf besser steuern, wie Fehler vermeiden Netzwerkprogrammierung 20
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
K Mit Java ASPX Webseite fern steuern Netzwerkprogrammierung 2
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben