Überprüfung auf Server
-
Hallo,
ich möchte ein kleines Programm schreiben welches so ähnlich wie ICQ funktioniert. Jetzt möchte ich überprüfen ob verschiedene Benutzer einen Server schon aktiviert haben, sodass ich nur noch meinen Client aktivieren muss. Bzw. auch andersrum
Versteht mich jemand? Kann mir jemand weiter helfen?
-
naja ich schreib mal wie ichs verstanden hab: Du hast ein Chatprog was sowohl server als auch client sein kann. Du willst jetzt wissen wenn du das Programm startest ob schon ein server da is oder nich. Die antwort (Das geht nur über LAN und auch nur bis zu nächsten router über internet ist sowas nicht möglich!!!) UDP und Broadcast würd ich empfehlen (Es geht natürlich auch TCP aber hier reicht UDP). Also UDP ist ein Protokol bei dem es keinen Server oder Client gibt sondern nur gleiberechtigte sockets. Du baust in dein Programm einen UDP Socket ein der auf Port 9999(beispiel) läuft. Den hat jedes Programm (UDP Socketrs gibs bei Borland schon fetig als komponente). Wenn dein Programm startet sendet es ein Broadkastpacket. Die IP adresse hierfür ist meißt 255.255.255.0 oder 255.255.255.255 (letzere geht glaub ich immer). Jetzt vershcikst du über den UDP socket an diese IP einfach ein byte zb. Y oder so. Dieses Packet werden alle im LAN bekommen. Jetzt muss dein Programm nur beim Start ein solches Packet verschicken. Sollte niemand antworten gibts noch keinen Server. Sollte dein Programm ein solches Packet erhalten und ist Server dann muss es einfach eine Antwort an den Absender zurückschreiben. Zb
. ein A . JEtzt weiß das andere Programm du bist server