Hilfe bei Multiuser Chat ala ICQ
-
Hey @all,
und zwar habe ich vor einen kleinen Multiuser-Chat ala ICQ zu schreiben, natürlich nicht genauso, aber ähnlich und das als Übungszwecken. Dies bräuchte ich nachher nämlich für ein Spiel.
Ich verwende TClientSocket und TServerSocket.
OK, als ich habe ein Programm das als Server fungiert, und ein Programm, das als Client fungiert.
Nun ich kann dem Server mittlerweile schon Befehle senden, jedoch darf der Nachrichtentext nicht zu groß sein, hier mal ein Beispiel fürs senden vom Client
// Anfrage senden if(ClientSocket1->Active) { char *buffer = new char[RichEdit1->GetTextLen()]; strcpy(buffer, RichEdit1->Lines->GetText()); TWinSocketStream *pStream = new TWinSocketStream(ClientSocket1->Socket, 60000); pStream->Write(buffer, strlen(buffer) ); delete [] buffer; } else { ShowMessage("Keine Verbindung zu einem Server!"); }
Hier bekomme ich folgende Fehlermeldung vom Client, falls der Text etwas länger ist
Zugriffsverletzung bei Adresse 011943BB im Modul 'BORLNDMM.DLL'. Schreiben von Adresse 20202024 und EAccessViolation
und vom Server bekomme ich folgende
Zugriffsverletzung bei Adresse 011943BB im Modul 'BORLNDMM.DLL'. Lesen von Adresse 011BBFFC
Also ich hätte vor, das ich ein Fenster habe wo die Namen bzw. die IP-Addressen der Teilnehmer drinsteht, und wenn ich auf einen Namen klicke ich mit dieser Person chatten kann. Nur weiß ich nicht wie ich das machen soll? Einzeln funktioniert es, aber das auch nur in eine Richtung.
Kann mir da jemand helfen?
Würde gerne Parallel senden und empfangen können!Lg _freeze_
-
Vielleicht hilft dir das CHAT Beispiel was beim BCB dabei ist, schaus dir mal an!
-
Das habe ich mir schon angeschaut, aber ich meinte, wenn ich vom Client eine Message an den Server schicke, das der Server dann beispielsweise mit dem Wort OK antwortet. Nur schreibt er mir da wieder einen Fehler bezüglich Asychroner Fehler
Lg _freeze_
-
also eine automatische antwort vom server schicken?
-
ja genau, nur das ich dann halt einen Fehlermeldung bekomme mit "Asychron ..."
Lg _freeze_