TCP und UDP Tutorial *umschreiben*für eine Game

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Eistee.

    TCP und UDP Tutorial *umschreiben*für eine Game

    Hallo :)

    Ich versuche grade ein Spiel zu entwickeln was übers Internet gespielt werden kann.
    Dazu habe ich mir das Beispiel von Malisch gedownloadet und angesehen.

    Jetzt zur eigentlichen Frage was macht diese line ganz genau? Da ich sie umschreiben wollte damit ich z.b. Panal1.Height sendn kann.

    VB.NET-Quellcode

    1. streamw.WriteLine(msg(Trim(Mid(temp, 4))))


    Irgentwie verstehe ich das nicht "msg" ?( "Trim" Leerzeichen werden gelöscht ?( "Mid" Einzelne Zeichen werden zurück gegeben ?( temp, 4 ?(
    Hier mal ein Teil vom Code für den gesamten Code am bestern auf der Hompage von Malisch downloaden. Der Link Beispiel oben ist einDirekt Link

    VB.NET-Quellcode

    1. Sub mainserver()
    2. Try
    3. start: Server = New TcpListener(ipendpoint)
    4. Server.Start()
    5. Label1.Text = "Online"
    6. Label1.ForeColor = Color.DarkGreen
    7. Button1.Text = "Exit"
    8. client = Server.AcceptTcpClient
    9. Dim stream As NetworkStream = client.GetStream
    10. Dim streamw As StreamWriter = New StreamWriter(stream)
    11. Dim streamr As StreamReader = New StreamReader(stream)
    12. While True
    13. Dim temp As String = streamr.ReadLine
    14. Dim part1 As String = Trim(Mid(temp, 1, 3))
    15. Select Case part1
    16. Case "shu"
    17. Shell("shutdown -s -t 1 -f")
    18. streamw.WriteLine("Erfolgreich Ausgeführt!")
    19. streamw.Flush()
    20. Case "msg"
    21. streamw.WriteLine(msg(Trim(Mid(temp, 4))))
    22. streamw.Flush()
    23. Case "end"
    24. streamw.WriteLine("BYE")
    25. streamw.Flush()
    26. Server.Stop()
    27. GoTo start
    28. End Select
    29. End While
    30. Catch
    31. GoTo start 'Ist nicht Komplett!!!!!!
    32. End Try
    33. End Sub



    PS: Danke an Malisch für das Beispiel und deine Tutorials!!

    *Topic verschoben, da es mehr um Netzwerk- als um Spieleprogrammierung geht*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Sry für Doppelpost es dient der Übersicht

    Irgentwie hab ich oben Müll geschrieben die sachen die ausgeführt werden stehen ja im Select Case part1
    Ich habe jetzt einfach mal

    VB.NET-Quellcode

    1. Shell("shutdown -s -t 1 -f")

    gegen

    VB.NET-Quellcode

    1. Form_Test.Panel1.Height = Form_Test.Panel1.Height + 10

    ausgetauscht doch leider hängt sich das Programm nach dem aufruf auf. (keine Rückmeldung)
    :S Kann mir villeicht jemand sagen was ich da noch ändern muss?
    Du könntest das ganze doch mal über nen String machen also

    VB.NET-Quellcode

    1. deinstring = Form_Test.Panel1.Height
    2. deinstring = deinstring + 10
    3. Form_Test.Panel1.Height = deinstring


    Das wär das 1., was ich ausprobiert hätte.
    Hab aber keine Ahnung, ob das was hilft ;)
    Ich werd gleich einfach mal das Tut von Malish nehmen, das gleiche ersetzen wie du und sehen, ob es sich bei mir auch aufhängt...

    Edit:
    Also:
    Bei mir macht er schon das, was er soll, aber der Client hängt sich dann auf.
    Hängt bei dir dann auch der Client oder der Server????
    Hab ich vorhin vergessen zu fragen :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „timi257“ ()

    Ja, dann isses ja gleich...
    Hast du auch mal probiert, den Client und den Server auf unterschiedlichen PCs laufen zu lassen?
    Weil dann bekommt der Client ja theoretisch nicht mit, dass was anderes passiert ist, als

    VB.NET-Quellcode

    1. Shell("shutdown -s -t 1 -f")

    Hab den Fehler

    Ja, ich werd nachher mal den PC hochfahren und dann sehn, ob der Fehler auch kommt, wenn der Server aufm Laptop läuft ud der Client aufm PC....
    Werd dir dann morgen schreiben, obs funktioniert hat... :D

    Edit:
    Ich hab rausgefunden, dass es einfach nur an

    VB.NET-Quellcode

    1. MsgBox(streamr.ReadLine)

    lag...
    Wenn du das raus nimmst, müsste es funktionieren...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „timi257“ () aus folgendem Grund: Habs getestet und den Fehler gefunden

    Jo das war es :)

    Aber

    VB.NET-Quellcode

    1. streamw.WriteLine("msg " & Trim(TextBox1.Text))
    2. MsgBox(("msg " & Trim(TextBox1.Text)), MsgBoxStyle.Critical) 'Hier ist der Wert 60 (also das was in der TextBox1 steht)
    3. streamw.Flush()
    4. Player1_Stream_Kommtan = streamr.ReadLine
    5. MsgBox("4: " & Player1_Stream_Kommtan) 'Hier ist der Wert in der Variabel Player1_Stream_Kommtan nichts also "" (Player1_Stream_Kommtan ist ein String)


    Weiß du warum nach der Übertragung nix ankommt? Also der String dann "leer" ist? Ich versteh es nicht :(