Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
Delphi 5 Standard
|
Re: Netzwerkchat ohne Serverprogramm??
29. Sep 2005, 02:44
Um das einmal klar zuu stellen: Einen Server hast du immer. Der Server ist das Programm, der ein Port öffnet und dort hört. Clients sind die Programme, die sich mit dem Server verbinden.
Die Frage ist also nur, ob es einen zentralen Server gibt, oder ob der Server dezentral auf der Maschine eines Teilnehmers läuft. Ein zentraler Server läuft durchgehend. Wie das mit dezentralen Servern geht, hängt von der Kommunikationsstruktur ab:
1 : 1 Verbindung
Teilnehmer 1 versucht sich mit Tn 2 zu verbinden. Wenn das nicht geht, also Tn 2 den Server nicht gestartet hat, dann startet Tn 1 den Server. Dort kann sich Tn 2 mit seinem Client verbinden. Das ganze geht automatisch, Client und Server sind Teile der selben Applikation.
1 : n Verbindung
Bei fester Teilnehmeranzahl müssen alle möglichen Tn geprüft werden, ob dort schon der Server läuft. Neue Teilnehmer können die Verbindung nicht eröffnen, sie können sich nur an bestehenden Verbindungen anschliessen und dadurch als möglicher Teilnehmer für das nächste Mal bekannt werden. Auch hier sind Server und Client Teile des selben Programms. Das Programm entscheidet automatisch, ob es sich als Client anschliesst, oder als Server wartet.
1 : n Verbindung mit Veröffentlichung
Es gibt noch eine zweite Variante. Ein Webserver, das heisst zum Beispiel eine php Seite dort, dient als eine Art schwarzes Brett. Dort kann jeder Teilnehmer nachsehen, ob ein anderer Teilnehmer bekanntgegeben hat, dass sein Server läuft. Dann kann er sich verbinden. Wenn keine Aktivität bekanntgegeben wurde, dann kann er sich selbst eintragen und seinen Server starten.
Dabei besteht immer die Möglichkeit zu Kollisionen. Die müssen erkannt und behoben werden.
Ausser den beschriebenen sternförmigen Verbindungen gibt es noch Baumförmige, wo jeder Teilnehmer einen Server laufen hat und dort die Information weiter gibt, die er über den Client erhalten hat. In diesem Fall müssen aber Schleifen verhindert werden. So ein Verbindungsbaum kann durch Zeitmessungen und Umstrukturierung immer wieder optimiert werden. Da wird es aber reichlich kompliziert.
der flossinger
|