# Kleines Chatprogramm



## Kyrodust (5. Juli 2003)

Hi Leute!

Ich will ein Chatprogramm schreiben, aber leider habe ich keine Ahnung, wie ich damit anfangen soll. In diesem Programm soll man in eine Textbox einen Text eingeben können, der dann in einer Textbox ausgegeben wird. Wie kann ich es anstellen, dass jeder, der das Programm gestartet hat, lesen kann, was in der oberen Textdatei drinsteht. Und zweitens: Ich will, dass jeder User, der das Programm gestartet hat, in einer Listbox mit seinem Usernamen angezeigt wird. (Das setzt voraus, dass jeder vorher einen Usernamen eingibt, aber wie das geht, ist mir schon klar). Natürlich soll vor jeder Nachricht der Name des Users stehen, der die Nachricht geschrieben hat.

Ich hoffe, mir kann jemand helfen.

cu LordAlucard


----------



## Dario Linsky (5. Juli 2003)

Ich denke, Du solltest Dir als erstes Mal Gedanken darüber machen, wie Dein Netzwerk aussieht und wie das Programm funktionieren soll.
Wenn es um eine reine P2P-Verbindung geht, kannst Du die beiden Clients direkt miteinander verbinden. Falls es ein Client/Server-System sein soll, brauchst Du zwei Komponenten:
- Einen Client, in dem die Daten eingegeben werden
- Einen Server, der die angemeldeten Clients verwaltet.

Letzteres ist IMHO die bessere Variante für das, was Du vorhast. Dabei funktioniert das so, dass bei jeder Nachricht, die über das Netzwerk gesendet wird (ähnlich wie beim IRC) eine kurze Kennung vorausgeht, über die der Sinn der Nachricht interpretiert werden kann.
Wenn sich beispielsweise ein Client an dem Server anmeldet, wird der Name des Clients an alle anderen Clients weitergeleitet, sodass diese ihn in die Userliste aufnehmen.
Bei den Nachrichten ist das ähnlich: Die Nachricht wird an den Server gesendet, der sie an alle angemeldeten Clients weiterreicht.

Lösen lässt sich das mit dem Winsock-Control. Besonders wichtig ist dabei die Methode Send zum Versenden von Kommandos. Für den Client ist nur das Ereignis OnDataArrival (kann sein, dass es anders heisst) wichtig, für den Server noch zusätzlich das Ereignis OnConnect (bin hier ebenfalls nicht sicher, ob es so heisst). Dazu kommen natürlich noch Funktionen zur Stringverarbeitung, um die Kommandos zu interpretieren.

Zur Erklärung: Wenn sich ein Client anmeldet, wird auf dem Server das Ereignis OnDataArrival ausgelöst, dann sendet der Server mit der Send-Methode einen Befehl an den Client zurück, der zusätzliche Daten vom Client anfordert - dieser Befehl kann auf dem Client mit dem OnDataArrival-Ereignis abgefangen und bearbeitet werden. Und so weiter...
Eigentlich besteht ein extrem simpler Chatclient aus maximal 5 Ereignisroutinen.


----------



## Kyrodust (5. Juli 2003)

Da habe ich nur ein kleines Problem: Ich habe bei meinem VB kein Winsock dabei. Ich hab mir die ocx Datei geladen, kann sie aber nicht anwenden.

cu LordAlucard


----------



## Dario Linsky (5. Juli 2003)

Winsock gehört AFAIK auch nicht zu VB, sondern zu Windows. Welche Fehlermeldung wird denn ausgegeben?


----------



## Kyrodust (5. Juli 2003)

Wenn ich das Feld aufziehen will kommt folgende Meldung:


> Linzenzierungsinformationen für diese Komponente nicht gefunden. Sie verfüngen nciht über die erforderliche Lizenz, um dieses Funktionsmerkmal in den Entwurfsumgebungen nutzen zu können.



cu LordAlucard


----------



## Dario Linsky (5. Juli 2003)

Kleiner Tipp:
Manchmal hilft es, wenn man nach dem genauen Wortlaut der Fehlermeldung oder ein paar Sätzen daraus sucht. Dabei findet man unter anderem solche Dinge wie das hier:
http://www.google.de/search?hl=de&l...+für+diese+Komponente+nicht+gefunden"&spell=1


----------



## Kyrodust (7. Juli 2003)

Na gut! Winsock funktioniert jetzt mal. Kann mir auch jemand erklären, wie ich es verwenden soll???? Ich werd mal versuchen, mich selbst mal ein bisshen schlau zu machen ^^

cu LordAlucard


----------

