Netzwerkfähiges Spiel



  • Doch, denn ein ("echter") Ping geht über's ICMP (welches wohl geblockt ist) während du für dein Spiel sicher TCP/UDP willst.



  • ok. Noch eine Frage. In meiner Activity gibt es natürlich eine onTouchEvent(MotionEvent e) Methode. Da passiert total viel drin. Nach Abarbeitung des gesamten Codes da drin soll der Server benachrichtigt werden. Wie mach ich das am besten. Ich stell mir das so vor.

    Server server = new Server(myActivity);
    

    Ich übergeb meinem Server also die Activity.

    class Server{
    Activity activity;
    
    public Server(Actitiy act)
    {
        this.activity = act;
    }
    
    }
    

    Wie wird der Server aber benachrichtigt dass die onTouchEvent Methode ausgeführt wurde. Und vorallem er soll ja benachrichtigt werden wenn diese fertig abgearbeitet wurden und dann über die Methode getValue() der Actitvity den neuen Wert holen....



  • Peter_Mueller schrieb:

    Nach Abarbeitung des gesamten Codes da drin soll der Server benachrichtigt werden. Wie mach ich das am besten.

    Man definiert ein Nachrichtenprotokoll und schickt entsprechende Datenpakete.



  • versteh ich nicht. Ich hab die Klasse MyActivity und die Klasse Server. Wie wird der Server benachrichtigt dass die onTouchEvent Methode in der Klasse MyActivity beendet wurde...



  • Das kannst du dir selbst ausdenken. Primitiver Ansatz

    ONTOUCHEND = 1
    
    ...
    
    client.send(ONTOUCHEND)
    
    ...
    
    command = server.read();
    if(command == ONTOUCHEND) {
       bla();
    }
    


  • Könnte sein, dass ich da was falsch verstanden habe. Naja, bei deinen Erklärungen.. 😃

    Äh, ich werd grad innerlich unruhig, wenn ich mir eine Antwort überlege.

    Also lass ich es lieber :p



  • Ihr versteh was falsch. Der Client sendet hier gar nix. Der Client ist für diesen Use-Case erstmal aus dem Spiel. Es geht eher darum was der Server an den Client schicken möchte. Und das bekommt er über das onTouchEvent meiner Actitivy Klasse mitgeteilt. Und das Ergebnis davon soll an den Server übermittelt werden. Und wie das gehen soll, das weiß ich leider nicht....



  • Mit "Netzwerkpaketen" und so.



  • ich hab doch schon gesagt ich weiss nicht wie die Server Klasse mitgeteilt bekommt wenn in der MyActitivy Klasse das onTouchEvent ausgelöst und beendet wurde.... Wie geht das in Android ???? Ich hab was von einem NotificationManager gelesen , braucht ich den oder gehts einfacher ?



  • da hier nix kommt. Ich versuch jetzt mal das Observer pattern. Dazu führ ich im Server eine Methode sendNotification() ein. Die wird am Ende der onTouchEvent Methode aufgerufen. Darin wird eine Variable flag auf true gesetzt.

    im Server läuft eine while(!flag); Schleife . Da meine activity ja in einem anderen Thread läuft und der Server in einem separaten sollte die while schleife dann stoppen dann setz ich das flag wieder auf false; Keine Ahnung ob das geht. Was anderes fällt mir nicht ein...



  • Warum kommentiert das keiner ?



  • es_muellert_wieder schrieb:

    Warum kommentiert das keiner ?

    Brauchst du Aufmerksamkeit?


  • Mod

    es_muellert_wieder schrieb:

    Warum kommentiert das keiner ?

    Dein Text sieht so verschwommen aus, alles ganz blurry.



  • Ich bin gerade dabei die neue "Pokemon" App zu programmieren und brauch eure Unterstützung haha



  • Kann mir mal einer helfen. mein Client wirft hier eine Exception da es natürlich die IP 1.2.3.4 nicht gibt. Aber trotzdem wird der Text von myButton im catch Block nicht auf"Exeception thrown" gesetzt. Woran kann das liegen. Vielleicht weil es in einem Thread läuft. Bin für jede Vermutung dankbar....

    thread = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try  {
                    Client client = new Client(activityObject,"1.2.3.4");
                }
                catch(Exception e)
                {
                     mybutton.setText("Exception thrown");
                }
                    }
                });
    


  • Weißt du überhaupt, ob deine GUI lib calls aus anderen Threads unterstützt?



  • ServerSocket welcomeSocket = new ServerSocket(6789);
             Socket connectionSocket = welcomeSocket.accept();
    

    kann mir mal einer sagen warum dieser code nicht kapiert wenn man keine Internetverbindung hat. Stattdessen wartet er auf eine Verbindung obwohl ich das Internet ausgeschaltet habe. Find ich schwach.... Dachte da kommt nee Exception...
    Oder stimmt ich mein localhost ist ja trotzdem drin, auch ohne Internetverbindung.
    Das coole ist mein Server hört sowohl auf localhost als auch auf die IP im LAN also 192.168.11.41 .



  • Peter_Mueller schrieb:

    Find ich schwach....

    Java ist schwach.

    Peter_Mueller schrieb:

    Das coole ist mein Server hört sowohl auf localhost als auch auf die IP im LAN also 192.168.11.41 .

    Ja total cool wenn man nicht weiß was im Hintergrund passiert. Dank Java.


Anmelden zum Antworten