Progger_X Mr. Lagg
Anmeldungsdatum: 24.11.2004 Beiträge: 784 Wohnort: Leipzig
|
Verfasst am: 25.02.2006, 01:52 Titel: Problem mit Masterserver |
|
|
Hallo Leute!
Ich programmiere jetzt schon die halben Ferien an einem Masterserver.
Das soll folgendermaßen funktionieren: der Server wird geöffnet, dann kommen alle Clienten zum Server. Wenn dann genug clienten da sind, dann legt der Server Paare fest, und diese Paare sind dann jeweils ein Server und ein Client und spielen gegeneinander. Der der gewinnt, verbindet sich wieder und dann geht das wieder los usw. Dazu habe ich mir erst folgenden Code überlegt:
http://www.freebasic.de/fbnp/index.php?view=237 (Server)
http://www.dagere.de/neu.txt (Client)
(Der zweite Code war zu groß für Nopaste)
Das hat erstmal ganz gut funkioniert. Doch irgendwann kam ein Fehler, und der Client hat(aus unerfindlichen Gründen) nicht mehr mitbekommen, wenn das Spiel beginnen sollte.
Das hat mich erstmal sehr traurig gemacht, weil ich ja ziemlich lange dran gearbeitet hatte.
Da mir aber letztendlich niemand helfen konnte, und ich keine Ahnung hatte woran es lag, entsann ich mich eines alten Rates aus dem IRC Channel "Am Anfang muss man halt alles mehrmals programmieren". Also gut, hab ich mich an die Arbeit gemacht. Diesmal hab ich gleich überall wo es mir einfiel Fehler abgefangen, mit SDLNET_GetError() angezeigt und so weiter. Außerdem hab ich das ganze kräftig entrümpelt, und z.B. beim Server die SDL Graphikkomponenten entfernt, und mich auf die DOS Box beschränkt.
http://www.freebasic.de/fbnp/index.php?view=238(Server)
http://www.freebasic.de/fbnp/index.php?view=239(Client)
Dieser Client war zwar nur DOS Box basierend(und deshalb war kein Spiel möglich), aber immerhin, die Paarzuweisung funktionierte und das ganze hat getan, was ich wollte. Dann musste ich - sonst kann ich ja mein SDL Spiel nicht drauf machen - wohl oder übel das ganze zumindest beim Clienten in eine SDL Graphik packen. Damit hab ich dann also begonnen, und bin auf diesen Code gekommen:
http://www.freebasic.de/fbnp/index.php?view=241
Und plötzlich ist wieder der Wurm drinne! Plötzlich empfängt der wieder nichts!
Ich hab sogar mal probiert, einen SDL Clienten und einen normalen zu verbinden - Ergebniss: Der normale macht brav, was zu tun war, und der andere laggt rum(ist aber nicht bei dem Sleep).
Kann mir einer von euch vielleicht sagen, wieso mit ein bisschen SDL Graphik der Client nichts mehr empfängt, oder wie man diese Problem beheben kann? |
|