Engine und Winsock



  • Hallo zusammen,ich hab ein bisschen mit dem Multiplayer programmieren angefangen und benutze dafür Winsock.Meine ersten Versuche einen Chat und sowas zu machen waren erfolgreich und jetzt wollte ich das mit einer 3D Engine zusammenbacken.

    Ich weiß nur leider nicht wie man das machen könnte,da man z.b für das Empfangen von Daten eine eigene while Schleife braucht,was ich dan nicht in den Loop reinsetzen kann.

    Mit einem eigenen Thread hab ich es auch schon versucht,ohne erfolg.Dazu habe ich einen gemacht,wo er mit der while Schleife die Daten zu einem Vec3 Array convertiert und dan einen Würfel diese Koordinaten gibt und einmach ein Thread mit dem Rendern und Updaten.

    Wie macht man das normalerweise??
    Vielen Dank



  • Einmal pro Frame mit select() fragen, ob man was empfangen kann bzw. sein eigenes Zeug senden sollte eigentlich reichen. Was genau funktioniert da nicht bei dir?



  • Bob Wolfskin schrieb:

    Mit einem eigenen Thread hab ich es auch schon versucht,ohne erfolg.Dazu habe ich einen gemacht,wo er mit der while Schleife die Daten zu einem Vec3 Array convertiert und dan einen Würfel diese Koordinaten gibt und einmach ein Thread mit dem Rendern und Updaten.

    Und warum funktioniert das nicht?



  • Ich frage mich wie man einen Chat auf die Reihe bekommt, wenn man nichtmal das Gedöns in einen Thread bekommt... 😕


  • Mod

    die vanilla loesung ist ein zweiter thread, da hast du recht. wenn du noch nie mit threads gearbeitet hast, solltest du dir etwas zu mutex oder critical sections anlesen, vielleicht hast du sonst probleme.

    du solltest vielleicht auch erst deinen thread in dem chat programm einbauen und schauen, ob du es ohne den ganzen engine kram hinbekommst, gut moeglich, dass sonst woanders was schiefgeht.

    eine alternative zum thread ist den socket input genau so zu behandeln wie z.b. maus und keyboard, da macht auch niemand (bei verstand) einen extra thread auf, sondern fragt die daten einmal pro logik durchlauf ab. du kannst also abfragen ob daten bereitstehen (ioctlsocket) und diese menge auslesen und deine daten senden, gleich vor/nach der keyboard/mouse/pad abfrage.





  • iop schrieb:

    Schau Dir auch das hier mal an, nur zur Info:

    http://johnnie.jerrata.com/winsocktutorial/

    Miese Codeeinrückung alter... 😮


Anmelden zum Antworten