socker programmierung: applet als server fungieren
-
Hallo zusammen.
ich habe eine Applet gebastelt die als server läuft
<code>
ServerSocket client = new ServerSocket(7777);
while (true)
{
Socket so = client.accept();
(new ClientThread(++cnt,so,appletContext,documentBase)).start();
}
</code>
die applet soll daten aus einem c programm, das auf einem anderen Rechner als client läuft empfangen und anzeigen.
ich habe aber festgestellt dass dies nich möglich ist wegen den sicherheitsmanager bei applets(keine netzwerkverbindung aufnehmen und andere einschränbkungen).
das c-programm ist an einem prozess gekoppelt und sendet die daten per socket bei jede änderung.meine frage: wie kann ich am besten die Daten per socket in meine applet bekommen.
habe an einem zwischen applikation gedacht die als server läuft und daten vom c-programm emfängt und sie an apllet(läuft als client) weiter schickt oder habt ihr eine bessere idee.danke im voraus
youssef
-
Das was du brauchst sind Servlets. Die lösen deine probleme
-
hallo.
danke für die antwort. aber ich arbeite an einem schon vorhandenen projekt, das applets verwendet und um auf servlets umzusteigen macht der aufwand der arbeit noch grösser.
ich bin dabei eine idde auszuprobieren.
habe in eine server-applikation zwei serversockets erstellt.dazu benutze ich 2 threads der den erste serversocket verwendet um die daten von c-prozess zu empfangen) und den zweiten thread der zweiten serversocket um diese daten zur applet zu senden).
der erste thread empfängt die daten und schreibt sie in einem buffer und der zweite thread liest die daten aus dem buffer und sendet sie zu der applet.ist sowas machbar ?
Gruss
Youssef
-
Ein Aplett kann Sockets zu dem Server aufmachen, auf dem es liegt.
Hab ich mal mit ALTC ausprobiert...Bye, TGGC (Der Held lebt!)
-
Hi
Irgendwie hab ich das gefühl da hat einer was total verplatn. Sehe ich das richtig.
1. applet wird gestartet ( server ) mittels webbrowser
2. c applikation wird auf einem entfernten rechner gestart und baut verbindung zum servar auf.Wieso soll der server als Applet laufen? (na ja wer ... haben will soll ... krigen)
na ja egal. eine möglichkeit einen seperaten server dazwischen schalten und 2 klients verbinden sich mit dem server ( DataSendClient:C-App und DataRecivClient: Applet) läst sich in java sicher realisieren. nur stellt sich die frage. wo soll der laufen? auf der appletseite oder auf der c-appplikation seite?
Apletseitig währe jetzt meine erste vermutung. aber wer startet den server? das applet -- geht nicht aus dem gleichen grund wie der server betrieb. eine möglichkeit als system service einrichten. Wenn nicht, dann man gleich das applet über bord werfen und eine normale sweinganwendung schreiben.
C-app seitig. da müste der server zeitlich vor dem applet getstartet werden. was aber meiner interpretation des designs her nicht gewollt sein kann. Sonst würden server und client falsch verwendet. bzw dass applet müsste immer wieder vesuchen eine verbindung zum server aufzubauen (pollen)
gruss
-
hallo.
ich versuche nochmal das problem zu erklären.
ich habe ein c-programm das socket-verbindungen aufbaut und daten sendet bei jede änderung der daten (daten kommen aus einem prozess). ziel sation und port kann kann in c-programm einstellen.
ich möchte diese daten in meine applet bekommen, empfangen.jetzt antworte ich deine fragen zu meiner versuche.
-applet als server laufen lassen war falsch. habe ich später festgestellt(wegen einschränkungen bei sicherheitsmanager)
- c programm läuft auf rechner A (als client)
- server(java applikation) und applet client auf rechner B
- server wird momentan manuell gestartet aus dem konsole
- applet wird aus dem browser gestartet.ich hoffe das es verständlicher geworden jetzt
Gruss
Youssef