Netzwerkfähiges Spiel



  • ok . Das hilft mir schon mal weiter 🙂
    Das Grundgerüst für Client , Server kopier ich mir eigentlich immer irgendwo, denn das ist ja eh alles gekapselt und programmiersprachen abhängig.

    Was muss ich denn dann statt dem accept verwenden. Oder kannst du mir mal nen link
    geben. Das mit dem new Line \n versteh ich trotzdem nicht ganz. Das ist wohl das Terminalzeichen für den Server bzw Client um zu senden...



  • Peter_Mueller schrieb:

    Was muss ich denn dann statt dem accept verwenden.

    Die Frage ist doch eher: Was genau willst du eigentlich machen?

    Ich würd mal bei 0 anfangen und nen eigenen Code schreiben und rumprobieren.



  • Warum find ich im Netz kein Client / Server Beispiel wo sowohl der Client als auch der Server beliebig oft senden und empfangen kann. Da muss man ja nicht mal nen extra Thread aufmachen oder...



  • Bau halt ne for-Schleife ein.



  • Programmieren != passendes Beispiel Suchen und leicht Anpassen.
    Lern Programmieren.



  • hustbaer schrieb:

    Programmieren != passendes Beispiel Suchen und leicht Anpassen

    Dochdoch.. so hab ich jedenfalls begonnen 😃

    Man muss sich halt zu helfen wissen, sprich trial & error. Aber wenn's schon an der Suchmaschine scheitert.. :p


  • Mod

    Hi schrieb:

    Man muss sich halt zu helfen wissen, sprich trial & error.

    Kennst du diese C-Programmierer, deren Code zwar nicht falsch, aber auch nicht richtig ist? 😃

    Aber wenn's schon an der Suchmaschine scheitert.. :p

    Wohl wahr.



  • Ich komm mit meinem Spiel voran. So jetzt bin ich im Hotel und habe meinen Laptop und mein Android Phone bei mir. Der Laptop hat 192.168.11.41 und das Phone 192.168.11.55 als IP . Erstaunlicherweise kann ich beide vom jeweils anderen Gerät nicht pingen. Ich wollte auf meinem Laptop den Client laufen lassen und hab das Phone als Server laufen lassen und das geht jetzt natürlich nicht. Was soll ich jetzt machen ? Unterbindet der Router im Hotel vielleicht das pingen ? Wahrscheinlich oder. Aus Sicherheitsgründen da man sonst andere Hotelgäste belästigen könnte. Wie kann ich meine Anwendung nun testen. Öffentliche IP meines Hotels ist 87.128.16.39 . Aber die hilft mir nicht oder...



  • Peter_Mueller schrieb:

    Unterbindet der Router im Hotel vielleicht das pingen ?

    Kann schon sein. Oder die Firewalls deiner Geräte.

    Du brauchst aber doch bestimmt keinen Ping für dein Spiel.



  • aber wenn ich nicht ping kann, dann kann ich mich auch nicht mit dem Server verbinden oder *gggg*



  • 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...


Anmelden zum Antworten