tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
2135
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Liutasil Liutasil ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    17
    Hallo!
    Ich bin gerade dabei ein Browsergame zu schreiben. Dafür sind unter anderem auch Echtzeit Kämpfe geplant.
    Um das umzusetzten, möchte ich einen Java Server und einen Flash Clienten schreiben, wobei der Client zum Server connected, und der Server immer die Ereignisse (z.B. einen Angriff) an den Gegner weiterleitet.
    Das Programmieren an sich dürfte dabei auch kein großes Problem werden, ich werde einfach mit XMLSockets arbeiten.
    Ich habe mir auch schon ein kleines Beispielprogramm geschrieben und einen Tomcat-Server auf meinem PC installiert.
    Doch wie bringe ich den Server dazu, dass er mein Programm ausführt?
    das Programm muss ja im Prinzip dauerhaft ausgeführt werden, und nicht nur wenn man es über den Browser aufruft.
    ich hoffe mir kann jemand helfen
     

  2. #2
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    servlet hat ja dafür bestimmte Methoden.
    z.B. init --> Diese Methode wird bei Start des Servlets ausgeführt.
    destroy --> Falls Servlets runtergefahren wird.

    Du musst zuerst mal nachschauen, was für Methode Servlet anbietet.

    http://java.sun.com/j2ee/1.4/docs/ap...t/Servlet.html

    Gruß
    lernen.2007
     

  3. #3
    Liutasil Liutasil ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    17
    ich glaube ich habe mich oben ein bisschen falsch ausgedrückt.
    Ich will kein Servlet sondern eine Socket-Application auf dem Server zum Laufen bringen
     

  4. #4
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Irgendwie find ich das konfus, was du vorhast. Entweder du benutzt einen Tomcat und benutzt die Sachen, die er dir anbietet (Webcontainer -> HTTP Requests) oder du schreibst einfach ein normales Java Programm, was nen Socket aufmacht und lässt das Standalone laufen.

    Warum willst du beides kombinieren? Nur weil bei Tomcat "Server" draufsteht und du meinst du bräuchtest was, was "Server" heißt?

    Für Socketverbindungen gibt sicherlich jede Menge Beispielcode hier im Forum. Grundsätzlich würde ich aber bei Flash vor einem Javabackend (gerade in Verbindung mit Tomcat) auf einen Webservice (in welcher Form auch immer) setzen. In Flash ist das recht einfach zu realisieren, du nimmst was bewährtes als Protokoll (HTTP) und Server (Tomcat) und auf der Serverseite gibt es auch viele Bibliotheken, die dir die Arbeit erleichtern.

    Gruß
    Ollie
     

  5. #5
    Liutasil Liutasil ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    17
    danke für die ausführliche Antwort.
    Eigentlich suche ich nur nach einer Methode, bestimmte Daten zwischen 2 Flash-clienten auszutauschen. Das Ganze mit einem Socket-Server umzusetzten hat mir ein anderes Forum empfohlen.
    Ich habe mich jetzt ein wenig über Webservices erkundigt, aber so ganz verstehe ich nicht, was das eigentlich ist.
    Lässt sich über Webservices auch ein Netzwerk verwirklichen? Wenn ja, wie?
     

  6. #6
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Hm, was sagt den Wikipedia: http://de.wikipedia.org/wiki/Webservice. Ich denke, dir reicht der erste Absatz.

    Webservices arbeiten natürlich grundsätzlich übers Netzwerk, allerdings auf einer ganz anderen Abstraktionsebene. Im Allgemeinen programmierst du keine Lowlevelinfrastruktur mehr (Sockets auf und zu, Protokoll etc.). Man setzt also auf ein vorhandenes Protokoll auf und nutzt z.B. XML als Transportformat der Daten. Deshalb dann auch der Container (Tomcat) der die Kommunikation über HTTP abnimmt und dir die Requests z.B. an ein Servlet routet. Das wäre dann der Einstiegspunkt in den Javaprogramm.

    Die Kommunikationsart ist hierbei allerdings Request / Response. D.h. clients rufen aktiv vom Server Daten ab. Das liegt allerdings eher am verwendeten Protokoll (zum Großteil HTTP). Weiß nicht, ob das zu deinen Anforderungen passt.

    Als "Socketersatz" dient dir bei einem Webservice dann z.B. ein Servlet, dass z.B. unter http://www.foo.de/bar ereichbar ist. Dies könnte dann auf POST Requests reagieren und mit XML im Response antworten. Das wäre dann ein WebService auf rudimentäre Art und Weise. An dem Servlet hängt dann sicher im Hintergrund etwas Logik, Datenbankzugriffe usw.

    Gruß
    Ollie
     

  7. #7
    Liutasil Liutasil ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    17
    So wie ich das jetzt verstanden habe, kann bei einem Webservice der Server nicht aktiv Daten an den clienten senden. Dadurch wäre das für mein Programm weniger geeignet.
    Das größte Problem bei der Arbeit mit Sockets ist doch eigentlich eine evtl. beim Nutzer installierte Firewall, die den verwendeten Port höchst wahrscheinlich nicht durchlässt.
    Bei einem Browsergame kann man nicht erwarten, dass jeder einen Port bei seiner Firewall freigibt, um spielen zu können.
    Lässt sich dieses Problem irgendwie lösen?
    Gibt es z.B. eine Möglichkeit, eine Socket über Port 80 laufen zu lassen, um so die Probleme mit der Firewall zu umgehen?
    Oder lässt die Firewall auch höhere Ports durch, wenn der Flash-Client vom selben Server aus gestartet wurde, von dem auch eingehende Daten kommen?
     

  8. #8
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Du schreibst doch aber selber "Flash Client". Wie soll der denn dann mit dem XML Sockets Modell Daten empfangen?

    REINHAUN!
     

  9. #9
    Liutasil Liutasil ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    17
    laut diesem Tutorial hier:klick
    "steht mit dem XMLSocket-Objekt eine dauerhafte, beidseitige Verbindung zur Verfügung."
    das heißt, der Server kann auch aktiv Daten an den Clienten senden, sobald eine Verbindung besteht.
    oder habe ich da etwas falsch verstanden?
     

Ähnliche Themen

  1. Alias für Tomcat(5.5)-Servlet einrichten
    Von Moritz123 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 06.08.09, 12:38
  2. java Servlet mit xampp bzw. tomcat testen
    Von thedaystar im Forum Java
    Antworten: 1
    Letzter Beitrag: 24.12.08, 05:29
  3. Tomcat log per Servlet auslesen?
    Von derChris im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 12.12.07, 12:56
  4. Tomcat: Servlet zu Port
    Von dadevelopa im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 24.01.06, 14:42
  5. Prob mit Tomcat und Servlet
    Von Robout im Forum Java
    Antworten: 6
    Letzter Beitrag: 17.09.05, 17:47