Delphi 3 - Chat

Hallo,
wir haben von der Schule aus über die Ferien eine ‚kleine‘ Delphi Projektarbeit aufbekommen, die wir in 2 - 3 Wochen fertig haben sollen. Es geht dabei um einen Netzwerk-Chat, sprich ein Rechner spielt server und alle anderen koennen sich auf diesen ‚server‘ verbinden und dann zusammen chatten. Die anwahl auf den Server soll durch eingabe der IP-Adresse des Rechners im Netzwerk erfolgen. Ich habe leider keine Ahnung wie man mit den TCP Kommponenten von Delphi3 umgeht. Hat jemand eine Idee, wie man soetwas lösen kann, oder hat jemand soetwas vielleicht schonmal gemacht? Für Anregungen jeder Art bin ich offen.

Danke an alle die mit helfen wollen im voraus

ertyes

Hallo,
wir haben von der Schule aus über die Ferien eine ‚kleine‘
Delphi Projektarbeit aufbekommen, die wir in 2 - 3 Wochen
fertig haben sollen. Es geht dabei um einen Netzwerk-Chat,
sprich ein Rechner spielt server und alle anderen koennen sich
auf diesen ‚server‘ verbinden und dann zusammen chatten. Die
anwahl auf den Server soll durch eingabe der IP-Adresse des
Rechners im Netzwerk erfolgen. Ich habe leider keine Ahnung
wie man mit den TCP Kommponenten von Delphi3 umgeht. Hat
jemand eine Idee, wie man soetwas lösen kann, oder hat jemand
soetwas vielleicht schonmal gemacht? Für Anregungen jeder Art
bin ich offen.

Danke an alle die mit helfen wollen im voraus

Hallo!
Problem schon gelöst? Was solls: Eine IP alleine wird Euch nichts nutzen. Um einen Chatserver zu erreichen sollte man nicht direkt TCP/IP verwenden sondern sog. ServerSockets. Ein ServerSocket besteht aus der IP der Web-Server und einer Port-Nummer. Man sollte keine Port-Nummer unterhalb von 512 oder über 65535 wählen. Unter 512 ist bereits vergeben (z. B. hat das Internet Port:80) und über 65635 ist nicht definiert (glaube ich mal). Die Portnummer selbst könnt ihr ansonsten frei wälhlen, aber Ihr solltet Euch besser (unbedingt) auf ein einigen, z.B. 9555!!!

Der Server muß als Dämon auf dem Web-Server laufen und prüft den geählen Port (9555) ständig auf eingehende Verbindungen. Diese Verbindungen können (z.B in Java) Klassem sein, die einen Input- und einen Outputstream enthalten bzw. in Delphi könnte man wohl Funktionen, aber besser Interfaces nehmen. Diese Verbindungen selbst müssen ebenfalls eigenständige Threads sein, damit die Nachrichten auch verarbeitet werden können. Bei eingehender Nachricht informiert die Verbindungs-Klasse den Server, so daß dieser anderen Clients a)stoppen und b) ihnen über eine iterative Abarbeitung eines Verbindungs-Array die Nachricht an alle Clients weiter leiten kann. Deswegen müßen die Threads synchronisiert werden. Die Clients sollten ActiveX-Forms sein, dann kann man sie auch im Browser ausführen. Dort sollte dann über ein Socket (nicht ServerSocket) eine Verbindung zum Server mit dem Port (9555) erfolgen - ein SocketObject wird zurückgeliefert mit dessen z.B. senden(msg: String): boolean; Funktion man nachrichten an der Server schicken kann. Das ChatApplet muß seinerseits auch immer prüfen, ob ihm von Server Botschaften anderer Chatter geschickt werden.

Ich hoffe mal das hilft. GVT