[c++] kleines Problem mit meinem Chat!

Hallo liebe Community,

kurze Erklärung zu meinem Chat:

Client ist in wxWidgets und natürlich C++ gecoded. Server rein auf der Konsole. Client versendet so seine Strings: Befehl: 0x + String

Server: Komplettstring wird auseinander genommen in Befehl und String und dann abgehandelt je nach dem was der Befehl ist.

Nun habe ich ein kleines Problem was Verwaltung von den clients angeht! z.b. melden sich zwei User an sie können auch perfekt miteinander kommunizieren. Das problem besteht jetzt darin, dass Sobald sich ein User abgemeldet hat und der zweite sich danach abgemeldet hat bricht auf einmal alles zusammen.

Könnte vlt. jemand über den Servercode schauen??? Es ist wirklich dringend ich finde wirklich absolut nichts!

Der Code ist weder Sauber noch großartig kommentiert hatte leider noch nicht wirklich Zeit dazu. Es ist auch ein wenig auskommentierter Code drin also nicht wundern.

Wäre sehr dankbar über eure Hilfe

Stroker
 
Hmmm... Vielleicht finden wir ja was...

Der Natur des Einarbeitens in neue Themen entspricht es, daß man einige Sachen nicht weiter beachtet, die man an seinem eigenen System aus irgendeinem Grunde als konsistent bzw. korrekt funktionierend voraussetzt.
Sowas fällt aber fremden Leuten unter Umständen deutlich auf.

Das erste ist:
Code:
int client_sock[100];
versus
Code:
for(i=0; i<FD_SETSIZE; i++) client_sock[i]=-1;
und dergleichen an mehreren Stellen.

Das zweite ist: Der Code ist reichlich unkommentiert. Du erwartest ganz schön reichliches Entgegenkommen, wenn wir hier Deine Ideen reengineeren sollen. Vom bloßen Rübergucken fällt mir erstmal nichts auf. Tips für die Fehlersuche könnte ich schon geben:

1. Ermittle die Stelle, an der "alles zusammenbricht"! Ermittle insbesondere, was dort "alles" bedeutet!
2. Laß die Daten an der Stelle unmittelbar vor dem Zusammenbruch ausgeben!

P.S.: Wenn Du möchtest, daß jemand Deine Probleme WIRKLICH nachvollzieht, mußt Du den Client als Source hinlegen! Sonst gibt's selbstredend nur allgemeine Ratschläge.
 
Zurück
Oben