PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SDL: Broken Pipe bei Netzwerkspiel unter Linux (unter Windoof nicht?!)



TheNewNewUser
03-10-2004, 06:07
Hi!

Ich schreib grad ein kleines mulitplayergame mit der SDL.

Die recv() und send() des Servervs überprüfe ich immer auf ein -1 und wenn eins da ist wird der Client einfach entfernt. Unter Windoof gehts auch aber unter Linux bekomme ich dann wenn ein Client quittet die Meldung:



SDL: Broken pipe


Ich verwende bei beiden OS die gleiche SDL-Version(1.2.7). Daran liegts also net.

Ich kappier das net! Warum schmiert das unter Linux ab? :confused:

SeeksTheMoon
05-10-2004, 21:50
verwendest Du zufällig KDE?

TheNewNewUser
06-10-2004, 13:22
verwendest Du zufällig KDE?

Ja das mache ich.

Außerdem ist mir noch etwas aufgefallen. Broken-Pipe tritt nur auf, wenn ein Windoof Client den Socket schließt. Wenn dies ein Linux Client tut funktionierts so wie es soll.
Wenn ich unter Windoof das Programm beenden lasse, ohne vorher den Socket durch closesocket() zu schließen werden die Sockets automatisch geschlossen. Und das komische daran: Dann funktionierts auch.

Kann Windoof etwa die Sockets mit closesocket() nicht richtig schließen?

SeeksTheMoon
06-10-2004, 20:07
unter Linux kommt die Meldung broken pipe, aber der Fehler liegt bei Windows? :confused:

TheNewNewUser
07-10-2004, 14:11
Ja! Wenn ein Linuxclient den Socket schließt, dann gibt es keine broken pipe.
Nur wenn das ein Windoof-Client macht. Windoof scheint den socket nicht sauber zu schließen.

Könnte es sein, dass es deshalb nicht funktioniert, weil ich unter Windoof die Dev-C++ als Entwicklungsumgebung verwende. (Die ist derzeit noch Beta) :confused:

@SeeksTheMoon
Was sollte die Frage mit der KDE?

SeeksTheMoon
07-10-2004, 14:38
es liegt möglicherweise eher an Konsole, bei den letzten Versionen (3.1, 3.2) gibt es z.B. Probleme mit Broken Pipes wenn man die Konsole über den Konqueror öffnet.