![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
hallo forum, hab 2 programme. Einer ist "watcher" und soll nur abfragen können ob mein 2-tes Programm "Server" läuft. Wenn nicht soll der "watcher" eine entsprechende Meldung geben. Die beiden sollen gewissermassen komunizieren können. Wie ist es am Besten das Problemm zu lösen? Für jede Hilfe bin ich sehr dankbar... Gruß |
|
| | Nach oben #2 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 581
|
Laufen die beiden Programme auf dem selben Rechner, oder läuft der Server auf einem anderen Rechner als der Watcher? Wenn letzteres der Fall ist, richte auf dem Server einen Socket ein, auf den er lauscht. Vom Client aus öffnest du dann eine Verbindung zum Server und sendest eine Zeichenkette. z. B. "ON". Gleichzeitig setzt du den Time-Out der Verbindung auf 10 Sekunden. Der Server lauscht ja auf den Port, bei der eingehenden Verbindung öffnest du einen Thread der die eingehende Zeichenkette prüft, ist die Zeichenkette "ON" antwortet der Server: "YES" Was passieren kann: 1. Der Server läuft nicht, dann kommt es beim Aufbau bereits zu einem Fehler (Connection refused) 2. Der Server antwortet nicht, dann wirft der Socket ebenfalls einen Fehler (Connection Timed Out) 3. Der Server antwortet, dann brauchst du nur noch prüfen ob der Servr die Zeichenkette "YES" antwortet. Wie das ganze funktioniert ist recht gut beschrieben in "Java ist auch eine Insel", und zwar in diesem Kapitel. Gruß Sparrow |
| | |
| | Nach oben #4 |
| Gast
Beiträge: n/a
|
Hallo sparrow, hab mich Heute mit deinem Vorschlag beschäftigt und nur teilweise erfolg gehabt. Hab folgenden Code eingebaut: PHP-Code: Was soll ich an dem Code verbessern? Danke im voraus |
|
| | Nach oben #5 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 581
|
Also eins vorweg, wir bauen hier ja keinen reinen Echo-Server. Ansonsten könnten wir den Server einfach anpingen, aber wir wollen ja zusätzlich noch wissen ob die Application einwandfrei funktioniert. Ich glaube das Problem liegt auf der Serverseite. Deshalb meinte ich ja, du sollst jede Anfrage in einem extra Thread behandeln. Ich gehe bei meinen Server-Programmen immer wie folgt vor: Ich initialisiere eine Thread, ebenso wie du, in dem ich in einer while-schleife immer wieder folgedes ausführe: PHP-Code: PHP-Code: Das ist viel Code der überflüssig ist, aber er zeigt, wie der Socket in einem weiteren Thread weiterbehandelt wird. -------------- Bei dir scheint das Problem zu sein, dass der Server ja einen Moment braucht um zu reagieren, in diesem Augenblick, plus die Zeit die der Server auch noch wartet (sleep(100)) ist der Server nicht zu erreichen. Gruß Sparrow |
| | |
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
Danke für deine Hilfe Sparrow, Das mit Anpingen vom Server gefällt mir schon, allerdings wenn wir damit nicht feststellen können ob der Server immer noch funktioniert, nutzt das ja nicht sehr viel. was ist denn eigentlich parser(buf); Und der obere Abschnitt von deinem Code PHP-Code: |
|
| | Nach oben #7 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 581
|
Sorry, das mit dem Parser kannst du vergessen. Ich hatte eigentlich gedacht, ich hab alles rausgenommen was Programmspezifisch ist. Hinter der Methode verbirgt sich eine einfache überprüfung, was der Client gesendet hat, und wie der Server darauf reagiert. Alle Codeteile gehören zum Server. Es geht hauptsächlich darum zu zeigen, dass mit dem eingehen eines neuen Sockets ein neuer Thread geöffnet wird. Sehr gut ist das ganze Erklärt im Handbuch der Java-Programmierung. Die HTML-Version kannst du kostenlos unter http://www.javabuch.de herunterladen. Das Buch ist wirklich klasse, dort gibt es in Kapitel 45.3 die Erklärung wie man einen eigenen Webserver programmiert. Natürlich recht einfach gehalten. Es geht auch weniger darum HTML-Seiten ausliefern zu können, aber dafür ist sehr gut beschrieben wie der ServerSocket lauscht und warum man die Verarbeitug in einen extra Thread leisten soll. Überhaupt ist das Javabuch mein absoluter Favorit, und das Kapitel Netzwerkprogrammierung solltest du dir anschauen, es ist wirklich sehr gut beschrieben. Gruß Sparrow |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Warum C Programme auf Webseiten? | Skinwalker | Sonstige Programmiersprachen | 12 | 31.08.2007 16:44 |
| Pagosoft AppStarter - Programme starten, aber effizient | pago | Projekte unserer Mitglieder | 38 | 28.02.2007 22:34 |
| Welche Programme ? | Richie-4 | Allgemeine Java-Programmierung | 2 | 21.02.2005 13:23 |
| Programme von mir !!! | X_Master | Projekte unserer Mitglieder | 4 | 03.02.2005 17:12 |
| Diverse Programme | Gottzilla | Projekte unserer Mitglieder | 2 | 03.02.2005 12:52 |