Hallo, ich muss euch mal wieder belästigen. Früher habe ich eine Datenverbindung mittels Sockets aufgebaut. Client erstellt Server -> Schickt Daten an Hauptserver -> Hauptserver verteilt an alle Clients. Weil Sockets immer Probleme brachten und vor allem eher Consolen geeignet sind, bin ich Später auf
IRC ausgewichen. Client erstellt Server -> Sendet im
IRC Befehl -> Masterserver wertet aus -> Wiederholt den Befehl ( fals gültig ) -> Clients reagieren auf den Befehl wenn er vom Hauptserver kommt.
Nun hab ich umstruckturiert, weil der Hauptserver immer nur dann erreichbar war, wenn mein PC an war. Deshalb habe ich große Teile des Programms jetzt auf Web PHP basis umgelagert. Connecten -> Auslesen -> Auswerten. Nur bei einer Sache scheitere ich:
Ich will einen kleinen Part des Programms über
TCP laufen lassen. Der Client soll dabei sowohl als Client als auch als Server dienen. Die anderen Clients können Connecten sobald ein Client einen Server erstellt ( über die alte
IP eingabe Methode ). Dadurch brauche ich keinen Masterserver mehr.
Das Problem dabei ist:
Wie ich
Indy TCP Clients Nachichten zum Server schicken lasse ist klar. Aber wie bringe ich den Server dazu auf Knopfdruck die benötigten Informationen ( am liebsten in Textform ) an alle Connecteten Clients zu übermitteln?. Und vor allem: Wie bringe ich möglichst ohne einen Ressourcenfressenden und Freezeverursachenden Timer, die Clients dazu auf den Befehl zu lauschen? Das Connecten klappt soweit Problemlos, das Schreiben von den Clients an den Server auch. Aber nicht umgekehrt... Ich kann keinen passenden Befehl dafür finden. Die Daten werden immer in Folgenden Format mittels explode übermittelt und zerlegt:
Befehl|Wert|Befehl2|Wert2|....|Befehl99|Wert99
Wie realisiert man soetwas am besten, ohne einen Server der permanet Online sein muss? So das sich die nutzer bei bedarf aus dem Client heraus selbst einen Server erstellen können.